2014-01-05 70 views
5

我是從Python開始的。我有四個功能,工作正常。我想要做的是拯救他們。我想在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()) 
+1

描述'我想打電話給他們只要我想用python .'。 –

+1

您可以在需要時使用它們 – CRABOLO

+0

即使我關閉了會話? – CreamStat

回答

9

你想要做的是把你的Python文件,並把它作爲一個模塊加載它們

沒有辦法使這四個功能自動可用,不管是什麼,百分之百的時間,但你可以做一些非常接近的事情。

例如,在文件的頂部,您導入了numpynumpy是一個模塊或者庫,它已經被設置好了,所以任何時候你都可以運行python,只要你導入吧。

你想做同樣的事情 - 將這4個函數保存到一個文件中,並在需要時導入它們。


例如,如果你複製和這四個功能粘貼到一個名爲foobar.py文件,那麼你可以簡單地做from foobar import *。但是,只有當您在保存代碼的同一文件夾中運行Python時,這纔會起作用。

如果您希望在整個系統範圍內使用您的模塊,則必須將其保存在PYTHONPATH的某處。通常,將它保存到C:\Python27\Lib\site-packages將會工作(假設你正在運行Windows)。

3

它們保存在一個文件 - 這使得他們module

如果你把它們放在一個名爲mymod.py文件,在蟒蛇可以按如下

from mymod import * 
simulate_prizedoor(23) 
2

快速的解決方案,而無需顯式地創建一個文件 - 依賴於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會話中的溶液(最便捷的方式) - 增加了對未來的讀者我目前最好的解決辦法)