在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仍然不是对象的属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
