python构造函数的坑

1
2
3
4
5
6
7
8
9
10
11
12
13
class ():
def __init__(self, tools=[]):

self.tools = tools
def add_tool(self,value):
self.tools.append(value)
if __name__ == '__main__':
stu1 = Student()
stu2 = Student()
stu3 = Student(['toycar'])
stu1.add_tool('bear')
print(stu2.tools)#['bear'],stu1和stu2的tools实际指向了同一个地址。
print(stu3.tools)#['toycar'],stu3是自己赋值的,所以地址不同。