我有一個導入模塊的模塊,但在某些情況下,導入的模塊可能不存在。模塊導入後,有一個類繼承了導入模塊的類。如果我在模塊不存在的情況下捕捉到ImportError
異常,我如何阻止Python解析模塊的其餘部分?如果這是不可能的,我願意接受其他解決方案。如何在完成解析之前退出模塊?
這是一個基本的例子(selfaware.py):
try:
from skynet import SkyNet
except ImportError:
class SelfAwareSkyNet():
pass
exit_module_parsing_here()
class SelfAwareSkyNet(SkyNet):
pass
的唯一途徑我能想到做到這一點是:
- 導入
selfaware.py
模塊之前,檢查skynet
模塊是可用的,只需傳遞或創建一個存根類。如果多次導入selfaware.py
,這將導致DRY。 在
selfaware.py
之內有與try
塊一起定義的類。例如: -try: from skynet import SkyNet class SelfAwareSkyNet(SkyNet): pass except ImportError: class SelfAwareSkyNet(): pass
有什麼不對您的解決方案?它不起作用嗎?它有錯誤嗎? – 2009-02-23 10:58:30