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_global

v = 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

回到顶部