2012-01-27 19 views
12

soy nuevo en python y me gustaría separar mis funciones en diferentes archivos como lo hago con C++ (un archivo de controlador y un archivo para diferentes categorías de funciones que termino uniendo entre sí en la compilación)cómo vincular múltiples scripts de Python

supongamos que quiero crear un archivo 'controlador' simple que inicia el programa principal y un archivo 'función' que incluye funciones simples que son llamadas por el controlador y otras funciones dentro del archivo 'función'.

¿cómo debo hacer esto? dado que python no está compilado, ¿cómo puedo vincular archivos?

Respuesta

29

Se pueden ingresar import módulos. Simplemente cree diferentes archivos python e impórtelos al comienzo de su script.

Por ejemplo tengo este archivo function.py:

def func(a, b): 
    return a+b 

Y este archivo main.py:

import function 

if __name__ == "__main__": 
    ans = function.func(2, 3) 
    print ans 

Y eso es todo! Este es el tutorial oficial en la importación de módulos.

+0

En mi caso cuando imprimo ans, imprime Ninguno. No sé por qué :(¿Alguien me puede ayudar? – ePascoal

+0

@ePascoal ¿Estás seguro de que estás "devolviendo" a + b en func? – mitch

+0

¡Increíble! Antes de ver esto, siempre he usado enchufes! – Luke

1

Usted debe echar un vistazo a la tutorial oficial, y this página útil, lo que ayudará a empezar rápidamente :)

1

A principios de driver.py, escribe:

import functions 

Esto le da acceso a los atributos definidos en functions.py, hace referencia, así:

functions.foo 
functions.bar(args) 
... 
+0

Esta puede ser una pregunta tonta, pero ¿las variables también están disponibles? – beckah

1

puede importar cualquier archivo de Python simplemente escribiendo:

import filename 

Pero en este caso tiene que escribir el nombre del archivo cada vez que desee utilizarlo. Por ejemplo, debe usar filename.foo para usar la función específica foo dentro de ese archivo. Sin embargo, también se puede hacer lo siguiente:

from function import * 

En este caso todo lo que tiene que hacer es escribir directamente los comandos sin filename.

Un claro ejemplo:

Si está trabajando con la tortuga Python usando import turtle entonces cada vez que tiene que escribir turtle.foo. Por ejemplo: turtle.forward(90), turtle.left(90), turtle.up().

Pero si usa from turtle import *, puede hacer los mismos comandos sin turtle. Por ejemplo: forward(90), left(90), up().

Cuestiones relacionadas