我在python中开始。我有四个功能,工作正常。我想要做的就是保存它们。我想在python中随时调用它们。
以下是我的四个函数的代码:
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())
答案 0 :(得分:14)
您要做的是获取您的Python文件,并将其用作模块或库。
没有办法让这四个功能自动可用,无论如何,100%的时间,但你可以做一些非常接近的事情。
例如,您在文件的顶部导入了numpy
。 numpy
是一个已设置的模块或库,只要您导入,就可以在任何时候运行python。
您想要做同样的事情 - 将这4个函数保存到文件中,并随时导入它们。
例如,如果将这四个函数复制并粘贴到名为foobar.py
的文件中,则可以执行from foobar import *
。但是,这只有在您保存代码的同一文件夹中运行Python时才有效。
如果要在整个系统范围内使用模块,则必须将其保存在 PYTHONPATH 的某个位置。通常,将其保存到C:\Python27\Lib\site-packages
将起作用(假设您正在运行Windows)。
答案 1 :(得分:4)
如果您决定将它们放在项目文件夹中的任何位置,请不要忘记创建一个空白的 init .py文件,以便python可以看到它们。这里可以提供更好的答案:http://docs.python.org/2/tutorial/modules.html
答案 2 :(得分:3)
将它们保存在文件中 - 这使它们成为module。
如果将它们放在名为mymod.py的文件中,则在python中可以按如下方式加载它们
from mymod import *
simulate_prizedoor(23)
答案 3 :(得分:3)
快速解决方案,无需显式创建文件 - 依赖于IPython及其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
只需存储了一次所有功能,然后您就可以使用store -r
将其全部恢复,然后在每个新会话中为每个功能恢复exec func
。
(在交互式python会话中寻找“快速保存”功能(最方便的方式)的解决方案时遇到这个问题 - 为未来的读者添加我当前的最佳解决方案)