我有這樣的事(我知道這個代碼不工作,但它是什麼,我想實現的更近)方法:的Python - 一類具有可選參數和默認值類成員
class A:
def __init__(self):
self.a = 'a'
def method(self, a=self.a):
print a
myClass = A()
myClass.method('b') # print b
myClass.method() # print a
我到目前爲止已經做了,但我不喜歡它,是:
class A:
def __init__(self):
self.a = 'a'
def method(self, a=None):
if a is None:
a = self.a
print a
myClass = A()
myClass.method('b') # print b
myClass.method() # print a
嗯,這是規範的解決方案。大多數語言不允許使用'a = self.a'或等價的參數默認值... – deceze
如果您不關心傳入* falsey *值和可能產生的副作用,這種簡寫也會做:'print a or self .a' – deceze