0
class A:
def __init__(self,opt):
if not hasattr(self,opt):
raise SystemExit(1)
getattr(self,opt)()
def optionA(self):
return "A"
def optionB(self):
return "B"
現在,當我嘗試使用它一個類根據選項返回不同方法的模式?
>> A('optionA')
<__main__.A instance at 0x7f87bccfca70>
我想它返回的是 「A」。所以,我嘗試使用
class A:
def __call__(self,opt):
if not hasattr(self,opt):
raise SystemExit(1)
getattr(self,opt)()
def optionA(self):
return "A"
def optionB(self):
return "B"
這工作,但現在我不得不做出這個醜陋的通話
A()("optionA")
任何類的'__init__'方法都不會返回一個值,並且它的任何返回值都會被丟棄。 – 2014-11-06 08:20:50
如果要在類實例化中返回「A」,您將如何將實例賦值給變量? – 2014-11-06 08:23:32
不確定要真正理解你的問題,但特殊方法'__new__'返回一個對象,而不是像'__init__'那樣配置一個剛創建的對象。 – 2014-11-06 09:28:21