python中的self.a和a

python在一个类的方法中,定义变量self.a和a有什么区别呢?谢谢

阅读 8.1k
3 个回答

定义self.a变量会绑定在对象,函数调用后,不会被销毁;
定义a只是局部变量,函数调用完后会被销毁。

python和c++这些高级语言有一个区别在于类中的方法没有隐式的namespace,所以a就是一个局部变量,而self.a,如果出现在__init__方法中一般就是用于绑定实例属性,在其他非特殊方法中一般只做引用或重绑定(不建议绑定)。当然self.a也可以是类属性或者方法,具体情况具体分析。

self.a出现在类定义中,self指类的实例对象本身,self.a指该实例对象的一个属性或方法。

a可以出现在python代码的任何地方,只是一个变量,可以引用python的任何对象。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题