在Python方法中使用self作为临时变量会有所不同吗?
发布时间:2020-12-20 11:42:51 所属栏目:Python 来源:网络整理
导读:我有时需要在方法定义中使用临时变量,这些变量不在方法之外使用.在下面的类定义中使用self.MyVariable和MyVariable之间的行为有什么不同吗?哪种方法更好,为什么? 示例1:self.MyVariable class MyClass: def Hello(self,Name): self.MyVariable = "Hello "
我有时需要在方法定义中使用临时变量,这些变量不在方法之外使用.在下面的类定义中使用self.MyVariable和MyVariable之间的行为有什么不同吗?哪种方法更好,为什么?
示例1:self.MyVariable class MyClass: def Hello(self,Name): self.MyVariable = "Hello " + Name return self.MyVariable 例2:MyVariable class MyClass: def Hello(self,Name): MyVariable = "Hello " + Name return MyVariable 解决方法
第一个在类实例上创建持久引用,并且可以在方法范围之外的对象上使用.后者创建一个纯粹的本地引用,在方法之外不可用.哪个更好取决于具体情况,但如果它实际上只是一个临时变量,则使用本地(非自身)变量.
情况1: >>> foo = MyClass() >>> foo.MyVariable ... AttributeError: 'MyClass' object has no attribute 'MyVariable' >>> foo.Hello('bar') 'Hello bar' >>> foo.MyVariable 'Hello bar' 情况2如上所述,除了在调用Hello之后MyVariable仍然不是对象的属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |