我想知道,如果有人可以解釋爲什麼這兩個例子中最終產生相同的結果:蟒蛇類的默認參數
class Myclass():
def __init__ (self, parameter=None)
if parameter is None:
self.parameter = 1.0
else:
self.parameter = parameter
和:
class Myclass():
def __init__ (self, parameter=None)
if parameter:
self.parameter = parameter
else:
self.parameter = 1.0
我直觀地瞭解第一個「如果......是無「,但我與第二個例子鬥爭。都可以使用?
我意識到這可能是一個相當簡單的問題,因此如果任何人都可以指導我讀任何有助於理解差異的讀物。
謝謝!
他們並不總是返回相同的結果。試着發送參數= 0來看看。 – wim
'None'是* falsy *,所以當使用默認值時,else分支在第二種情況下被採用。但是,也有例外。 –
看看[真值測試](https://docs.python.org/3/library/stdtypes.html#truth-value-testing) –