我有兩個python文件file1.py和file2.py。 我使用exec()來獲取file2.py中定義的方法/變量。exec方法問題
file1.py have a class as given below
class one:
def __init__(self):
self.HOOK = None
exec(file2.py)
self.HOOK = Generate
### call the hook method ####
self.HOOK()
file2.py looks like as (There is no class define in file2.py)
def Generate()
do 1
do 2
hello()
def Hello()
print "hello"
現在的問題是因爲當我運行腳本它給出了一個錯誤的全局名稱你好找不到。 如果我從file2.py中的Generate方法中刪除Hello(),那麼它的工作正常。 我無法在file1.py中使用import file2.py,因爲在file2.py中只有一個方法名(Generate)被修復(它被視爲需求)。 因此,除了Genarate方法,用戶可以定義任何方法,並且可以在生成方法中調用此方法,因爲此方法不起作用,所以我必須將整個代碼寫入生成方法而且代碼也是重複的。
任何幫助真的是可觀...
請格式化你的代碼的代碼(從四個空格每一行)。那麼在堆棧溢出上讀取會容易得多。 – 2010-05-28 06:35:58
是否有你需要使用exec()的理由?通常有一個解決方法。 – 2010-05-28 10:31:18