2013-08-06 78 views
0

我知道這是一個新手問題。但。我有一個非常簡單的模塊,其中包含一個類,我想調用該模塊從另一個模塊運行。像這樣:如何執行另一個模塊的代碼?

#module a, to be imported 

import statements 

if __name__ == '__main__': 

    class a1: 
     def __init__(self, stuff): 
      do stuff 

     def run_proc(): 
      do stuff involving 'a1' when called from another module 

#Module that I'll run, that imports and uses 'a': 
if __name__ == '__main__': 

    import a 

    a.run_proc() 

然而,對於可能明顯其它方面的原因,我得到的錯誤屬性錯誤:「模塊」對象有沒有屬性「run_proc」我需要爲這個類的靜態方法,或在類中有我的run_proc()方法,我初始化了一個實例?

+0

你知道怎麼班蟒蛇工作? –

+2

**爲什麼**對於上帝的愛是否有主哨內的班級定義? –

+1

不要在main中定義類。 – zhangyangyu

回答

4

在模塊移動

if __name__ == '__main__': 

到文件的末尾,並添加通或一些測試代碼。

你的問題是:

  1. if __name__ == '__main__':範圍內的任何東西在頂層文件只考慮。
  2. 您正在定義一個類,但不創建類實例。

模塊,需要進口

,我會跑
import statements 

class a1: 
    def __init__(self, stuff): 
     do stuff 

    def run_proc(): 
     #do stuff involving 'a1' when called from another module 


if __name__ == '__main__': 
    pass # Replace with test code! 

模塊,即進口和使用 'A':

import a 
def do_a(): 
    A = a.a1() # Create an instance 
    A.run_proc() # Use it 

if __name__ == '__main__': 
    do_a() 
+0

就像我懷疑的一樣。感謝您的建設性幫助。 – StatsViaCsh

相關問題