如果參數與期望值不匹配,我想避免創建實例。
I.e.總之:如何*不*創建實例
#!/usr/bin/env python3
class Test(object):
def __init__(self, reallydoit = True):
if reallydoit:
self.done = True
else:
return None
make_me = Test()
make_me_not = Test(reallydoit=False)
我想make_me_not
爲None
,我認爲return None
能做到這一點,但這個變量是Test
實例太:
>>> make_me
<__main__.Test object at 0x7fd78c732390>
>>> make_me_not
<__main__.Test object at 0x7fd78c732470>
我敢肯定有做到這一點的一種方式,但我的Google-fu到目前爲止失敗了。
謝謝你的幫助。
編輯:我寧願這個被默默地處理;條件應該被解釋爲「最好不創建這個特定的實例」而不是「你正在使用這個類錯誤的方式」。所以是的,提出一個錯誤,然後處理它是一種可能性,但我寧願減少噪音。
You co uld嘗試提出錯誤 – lordingtar
引發異常,或者覆蓋'__new__'而不是'__init__'。 – kindall
在構造函數中拋出異常。這是處理錯誤構造函數參數的標準方法。 – Carcigenicate