python
连续赋值的易错点
形如:a,b = c,d
赋值依然存在顺序,以下为执行顺序的说明
temp1 = c
temp2 = d
a = temp1
b = temp2
举例:
a,a = 4,5
#a = 5
a,b = 1,a
#a = 1
#b = 5
面向对象编程的陷阱:
a = [1].append(1)
#实际上a并没有任何实际的意义
print([].extend([2]))
#打印的是None
a = []
print(a.extend([2]))
#打印的也是None
#这些方法是对对象进行操作,不返回任何值
函数参数传参理解
def func1(a):
a = 1
b = 2
func1(b)
print(b)
#2
def func2(a):
a.append(1)
b = []
func2(b)
print(b)
#[1]
def func3(a):
a = [1]
b = []
func3(b)
print(b)
#[]
#理解是将对象当做函数参数时,会新增一个指向该对象的标签作为实参传递