在“使用dict和set”那一小节我们有下面的代码:
>>> a = 'abc' >>> b = a.replace('a', 'A') >>> b 'Abc' >>> a 'abc'
当时是说. replace 只是改变了a 而不变‘a’对‘abc’的指针,相当于a.replace是一个新的变量。于是a是不变的。
但是在这一节的“默认参数“这一小节中
def add_end(L=[]): L.append('END') return L
L.append有是变化的 我能理解 变化的理由 但是不能判断什么函数是变化的什么是不变的,总不要一个一个试吧。 有没有什么道理?
定义默认参数时所采用的值是可变对象就会出现这种现象,依据是否可变来判断就好了
Sign in to make a reply
iSilent94021
在“使用dict和set”那一小节我们有下面的代码:
当时是说. replace 只是改变了a 而不变‘a’对‘abc’的指针,相当于a.replace是一个新的变量。于是a是不变的。
但是在这一节的“默认参数“这一小节中
L.append有是变化的 我能理解 变化的理由 但是不能判断什么函数是变化的什么是不变的,总不要一个一个试吧。 有没有什么道理?