似乎是只要是引用性变量都很危险?那该如何避免

来源:8-8 本章小结

木鸟

2019-03-24

输入正文

class A:

    staffs={}

  #  def __init__(self, a={}):

   #     self.staffs = a


    def add(self, name,staff_name):

        self.staffs[name]=staff_name

a=A()

b=A()

a.add('a',"bobby3")

b.add('b','bobby5')

print()

print(a.staffs)

print(b.staffs)

#print(A.__init__.__defaults__)

结果:

{'a': 'bobby3', 'b': 'bobby5'}
{'a': 'bobby3', 'b': 'bobby5'}

写回答

1回答

bobby

2019-03-25

//img.mukewang.com/szimg/5c98a2210001369907270448.jpg 这就行了,因为你这里的staffs是类变量,同时你又没有定义实例变量。所以两个对象都会查询到类变量,当然指向的是同一个变量了

0
0

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2121 学习 · 551 问题

查看课程