我有时需要在方法定义中使用临时变量,这些变量不在方法之外使用.在下面的类定义中使用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仍然不是对象的属性.