【发布时间】:2018-11-14 19:10:48
【问题描述】:
我有这样的课
class Test:
def __init__(self, var):
self.var = var
def test(self):
x = self.var + 2
return x
然后我做了一个这样的课程
class Test:
def __init__(self, var):
self.var = var
def test(self):
self.x = self.var + 2
return self.x
我知道我可以使用self 来分隔此类不同实例的属性值。我的问题是,如果我在一个方法中创建了许多实用变量(如 x),我是否应该始终使用 self 创建它们?
谁能解释上述两个类的行为有何不同(如果有的话)?
【问题讨论】:
-
不清楚你在问什么。第一个示例中的
x不是属性;它只是一个局部变量。除非您需要一个在方法调用中保持不变的值,否则最好使用局部变量。 -
如果您要在多个方法中使用
x值,那么它应该绑定到self并且self.x的初始定义应该在@987654330 中完成@方法 -
@JacobIRR 我将只在一种方法中使用它。
-
使用
self不会创建局部变量。如果你想要一个局部变量,值在方法结束时消失,那么使用局部变量(没有self)。如果你想要一个实例属性,在方法完成后值保留在实例上,那么使用实例属性(使用self)。 -
这种情况下,不用
self.