擅长:python、mysql、java
<p>如果<code><class>.weight</code>得到更新,则它们不是:</p>
<pre><code>class Test1():
Weight = 12.5
def __init__(self, weight = Weight):
self.weight = weight
testing = Test1()
print("First testing: {}".format(testing.weight))
Test1.Weight = 50
testing2 = Test1()
print("Second testing: {}".format(testing2.weight))
# First testing: 12.5
# Second testing: 12.5
class Test2():
Weight = 12.5
def __init__(self, weight = None):
if weight is None:
self.weight = Test2.Weight
testing = Test2()
print("First testing: {}".format(testing.weight))
Test2.Weight = 50
testing2 = Test2()
print("Second testing: {}".format(testing2.weight))
# First testing: 12.5
# Second testing: 50
</code></pre>
<p>默认参数在方法创建时被求值一次,因此在第一种情况下,默认参数将保持<code>12.5</code>,无论<code>Test1.weight</code>发生什么</p>