Python中'self'一词的目的是什么?
Python中self这个词的目的是什么?我知道它是指从该类创建的特定对象,但是我看不到为什么需要将它作为参数显式添加到每个函数中。为了说明这一点,在Ruby
中,我可以这样做:
class myClass def myFunc(name)
@name = name
end
end
我很容易理解。但是在Python中,我需要包括self
:
class myClass: def myFunc(self, name):
self.name = name
回答:
让我们看一个简单的向量类:
class Vector: def __init__(self, x, y):
self.x = x
self.y = y
我们希望有一种计算长度的方法。如果我们想在类中定义它,它将是什么样?
def length(self): return math.sqrt(self.x ** 2 + self.y ** 2)
当我们将其定义为全局方法/函数时,它应该是什么样?
def length_global(vector): return math.sqrt(vector.x ** 2 + vector.y ** 2)
因此,整个结构保持不变。我该如何利用呢?如果暂时假设我们没有length为Vector类编写方法,则可以执行以下操作:
Vector.length_new = length_globalv = Vector(3, 4)
print(v.length_new()) # 5.0
之所以有效,是因为的第一个参数length_global可以用作中的self参数length_new。没有明确的指示,这将不可能self。
理解显式需求的另一种方法self是查看Python在何处添加了一些语法糖。当你牢记时,基本上,
v_instance.length()
在内部转换为
Vector.length(v_instance)
很容易看到self适合的位置。你实际上并没有用Python编写实例方法;你编写的是必须将实例作为第一个参数的类方法。因此,你必须将实例参数显式放置在某处。
以上是 Python中'self'一词的目的是什么? 的全部内容, 来源链接: utcz.com/qa/421571.html