我正在調用一個函數(read_param),該函數依賴於來自主腳本(master.py)的文件(libfun.py)中定義的're'模塊。當我這樣做,我得到一個NameError:全局名稱未定義,雖然模塊已導入
NameError: global name 're' is not defined
我導入「重」模塊中的主腳本,但似乎在模塊中我輸入的功能不能使用它。我不想從函數內部導入're',因爲這看起來很浪費。這是爲什麼發生?
(這是一個最小的例子,不是我的實際代碼):
libfun.py:
def read_param(paramname, paramfile):
# code here depends on re module, e.g. calling re.split()
master.py:
#!/usr/bin/env python2
import re
import libfun as lf
lf.read_param('parameter', 'filename')
不應該在實際使用它的模塊中導入're'? –
請顯示完整的回溯和導致錯誤的代碼。你不會顯示任何依賴變量're'的代碼。 – Marcin
「我不想從函數內部導入're',因爲這看起來很浪費。」 - 你沒有理由讓自己生活困難http://stackoverflow.com/questions/296036/does-python-optimize-modules-when-they-are-imported-multiple-times – YXD