2012-09-18 16 views
22

He leído los siguientes mensajes:Llamar a una función en un archivo separado en Python

Importing Module or From Module Import

From file.py import *

Y me estaba preguntando cómo saber cuándo romper-mi código en archivos múltiples versus poner muchas funciones en un archivo? Mi problema específico aquí es que tengo una función con 100 líneas a la que quiero llamar en el bucle for de otra función. Además, ¿cuándo se ejecutan las secuencias de comandos? ¿Cuándo los importas, o cuando los llamas?

Nota: Las respuestas a continuación han resuelto completamente el problema. ¡Gracias!

+0

¿Por qué el voto a favor? Según http://stackoverflow.com/faq, se trata de un "problema practicable y responsable exclusivo de la profesión de programación" y un "problema de programación específico". ¿Hay alguna razón para ello? – user1590499

+0

Desde http://stackoverflow.com/questions/how-to-ask: "Haga su tarea. ¿Ha buscado a fondo una respuesta antes de hacer su pregunta?" La importación es un aspecto básico de Python, bien cubierto en el tutorial y en otros lugares. * No * estamos aquí para leer el tutorial por usted. –

+1

Votando la pregunta como si hubiera decidido que Kev no es un verdadero moderador – Stumbler

Respuesta

27

Suponiendo que la función useful_function está en un archivo foreign_code.py en el mismo directorio que el archivo de programa, sólo hay que poner

from foreign_code import useful_function 

en la parte superior de su programa.

+2

¿Qué pasa cuando el programa que está utilizando la función y el programa que define la función están en directorios diferentes? – Trojosh

3

Necesita import el otro archivo (o solo el nombre de la función de ese archivo). Mire el tutorial on modules para referencia. No olvide que los scripts se ejecutan cuando los importa.

+0

¡Gracias por la ayuda! – user1590499

5

Dependiendo de la naturaleza del otro archivo, importarlo puede ser una buena solución.

from otherfile import big_function 

for something something: 
    big_function() 
+1

Es un poco mejor usar 'frmo otherfile import big_function', para evitar llamar' otherfile.big_function' repetidamente (recuerde, cada '.' es una llamada de función en Python). –

+0

@PierreGM Buen punto. He actualizado mi respuesta en consecuencia. – skunkfrukt

+0

@NamidaAneskans, ¡gracias por la ayuda! – user1590499

Cuestiones relacionadas