gpt4 book ai didi

python - 为什么 self 只是一个约定而不是真正的 Python 关键字?

转载 作者:太空狗 更新时间:2023-10-29 20:24:44 24 4
gpt4 key购买 nike

据我所知,self 只是一个非常强大的约定,并不是 Python 中真正的保留关键字。 Java 和 C# 将 this 作为关键字。我真的觉得很奇怪,他们没有在 Python 中为它做一个保留关键字。这背后有什么原因吗?

最佳答案

因为 self 只是一个函数的参数,就像任何其他参数一样。例如,下面的调用:

a = A()a.x()

基本上转换为:

a = A()A.x(a)

不使 self 成为保留字也有一个幸运的结果,对于类方法,您可以将第一个参数重命名为其他名称(通常是 cls)。当然,对于静态方法,第一个参数与调用它的实例没有关系,例如:

class A:    def method(self):        pass    @classmethod    def class_method(cls):        pass    @staticmethod    def static_method():        passclass B(A):    passb = B()b.method()        # self is bb.class_method()  # cls is Bb.static_method() # no parameter passed

关于python - 为什么 self 只是一个约定而不是真正的 Python 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4131582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com