我有兩個文件。一個是program_utils.py
與內容:異常類無法導入
class SomeException(Exception):
def __init__(self, *args, **kwargs):
Exception.__init__(self, *args, **kwargs)
另一個,比方說,program.py
,與
import program_utils
def SomeFunction(arg):
if arg in set([ok_val1, ok_val2]):
# do something
else:
raise SomeException('reason')
當我運行program.py
它抱怨:NameError: name 'MyException' is not defined
。當我將program_utils.py
的內容直接粘貼到program.py
時,它工作正常。爲什麼?
'import program_utils'並不意味着「將'program_utils'的內容轉儲到我的名字空間中」。您仍然必須以'program_utils.whatever'的身份訪問。 – user2357112
您沒有將名稱導入您的名稱空間,因此您需要將其名稱範圍...'program_utils.SomeException'或導入到您的名稱空間中 - 'from program_utils import SomeException' – AChampion
這應該是顯而易見的。感謝大家的耐心。 – Jason