Python – Cómo guardar funciones

Estoy empezando en python. Tengo cuatro funciones y estoy trabajando bien. Lo que quiero hacer es salvarlos. Quiero llamarlos cuando quiera en python.

Aquí está el código de mis cuatro funciones:

import numpy as ui def simulate_prizedoor(nsim): sim=ui.random.choice(3,nsim) return sims def simulate_guess(nsim): guesses=ui.random.choice(3,nsim) return guesses def goat_door(prizedoors, guesses): result = ui.random.randint(0, 3, prizedoors.size) while True: bad = (result == prizedoors) | (result == guesses) if not bad.any(): return result result[bad] = ui.random.randint(0, 3, bad.sum()) def switch_guesses(guesses, goatdoors): result = ui.random.randint(0, 3, guesses.size) while True: bad = (result == guesses) | (result == goatdoors) if not bad.any(): return result result[bad] = ui.random.randint(0, 3, bad.sum()) 

Lo que quieres hacer es tomar tu archivo de Python y usarlo como un módulo o una biblioteca .

No hay manera de hacer que esas cuatro funciones estén disponibles automáticamente, sin importar qué, el 100% de las veces, pero puede hacer algo muy cerca.

Por ejemplo, en la parte superior de su archivo, importó numpy . numpy es un módulo o biblioteca que se ha configurado para que esté disponible cada vez que ejecute Python, siempre que lo importe .

Desea hacer lo mismo: guardar esas 4 funciones en un archivo e importarlas cuando las desee.


Por ejemplo, si copia y pega esas cuatro funciones en un archivo llamado foobar.py , simplemente puede hacerlo from foobar import * . Sin embargo, esto solo funcionará si está ejecutando Python en la misma carpeta donde guardó su código.

Si desea que su módulo esté disponible en todo el sistema, debe guardarlo en algún lugar de PYTHONPATH . Por lo general, guardarlo en C:\Python27\Lib\site-packages funcionará (asumiendo que está ejecutando Windows).

Si decide colocarlos en cualquier lugar de la carpeta del proyecto, no olvide crear un archivo .py de inicio en blanco para que Python pueda verlos. Se puede proporcionar una mejor respuesta aquí: http://docs.python.org/2/tutorial/modules.html

Guárdalos en un archivo, esto los convierte en un módulo .

Si los coloca en un archivo llamado mymod.py, en python puede cargarlos de la siguiente manera

 from mymod import * simulate_prizedoor(23) 

Solución rápida, sin tener que crear explícitamente un archivo: se basa en IPython y su storemagic

 IPython 4.0.1 -- An enhanced Interactive Python. details. In [1]: def func(a): ...: print a ...: In [2]: func = _i #gets the previous input In [3]: store func #store(magic) the input #(auto-magic enabled or would need '%store') Stored 'func' (unicode) In [4]: exit IPython 4.0.1 -- An enhanced Interactive Python. In [1]: store -r func #retrieve stored string In [2]: exec func #execute string as python code In [3]: func(10) 10 

Una vez que haya almacenado todas sus funciones solo una vez, puede restaurarlas todas con store -r , y luego exec func una vez para cada función, en cada nueva sesión.

(Encontré esta pregunta mientras buscaba una solución para las funciones de ‘ahorro rápido’ (la forma más conveniente) mientras estaba en una sesión interactiva de Python, agregando mi mejor solución actual para futuros lectores)