我有一個包__init__.py
看起來是這樣的:如何從包__init__中引發自定義異常?
import sys
__required_python_version = (2,6, 0)
if sys.version_info < __required_python_version:
this_version = '.'.join([str(x) for x in sys.version_info[0:3]])
required_version = '.'.join([str(x) for x in __required_python_version])
raise PythonVersionError(this_version, required_version)
class PythonVersionError(Exception):
def __init__(self, this_version, required_version):
self.this_version = this_version
self.required_version = required_version
def __str__(self):
return 'Python version %s is invalid. Must be at least %s' % (self.this_ver, self.required_ver)
雖然我敢肯定有格式化的版本字符串更優雅的方式,我可以用一個標準的異常可能得到,我真正的問題我將如何做這樣的事情?最好的方法是將我的自定義異常移動到單獨的文件中並導入它?還是應該將版本檢查包裝在運行__init__
時執行的函數中?我只是在尋找關於首選方法的建議。
謝謝
糟糕,圍繞init的我的下劃線變成了標記。我想我需要學習如何在這裏轉義角色。 – zenzic 2011-03-08 15:07:07
突出顯示要編碼的文本,然後按工具欄上的「編碼」按鈕。它將用空行包圍它並縮進4個空格。你也想在'內聯代碼'周圍使用反引號。請參閱:http://stackoverflow.com/editing-help – chmullig 2011-03-08 15:08:04
在編寫代碼時使用代碼標記以防止發生這種情況 – cmaynard 2011-03-08 15:09:11