首页 > 代码库 > python一个注意的地方
python一个注意的地方
https://www.zhihu.com/question/25874136
class test: l=[] def init(self): self.l=[‘1‘,‘2‘,‘7‘]a1=test()a1.init()
如果我这样定义一个类的话,执行了init方法后,a1.l的值为[‘1‘,‘2‘,‘7‘],test.l的值为[]。
但是如果改成这样子:
class test: l=[] def init(self): self.l.append(1) self.l.append(2) self.l.append(7)a1=test()a1.init()
那么test.l的值就会变成[1,2,7]。
两者的区别是,self.l = blablabla 这是一个赋值语句,self.l.append(blablabla)这不是一个赋值语句。
当Python intepreter看到你使用了『self.l』这个变量名的时候,它并不知道你想做的是对scope中可见的某个变量进行修改,还是在本scope中创建一个新的变量。处理起来逻辑就很简单:只要你使用了赋值,就默认你是想创建一个新的变量。
当Python intepreter看到你使用了『self.l』这个变量名的时候,它并不知道你想做的是对scope中可见的某个变量进行修改,还是在本scope中创建一个新的变量。处理起来逻辑就很简单:只要你使用了赋值,就默认你是想创建一个新的变量。
python一个注意的地方
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。