Python 类中“cls”和“self”的区别?

新手上路,请多包涵

为什么有时使用 --- cls 而不是 self 作为 Python 类中的参数?

例如:

 class Person:
    def __init__(self, firstname, lastname):
        self.firstname = firstname
        self.lastname = lastname

    @classmethod
    def from_fullname(cls, fullname):
        cls.firstname, cls.lastname = fullname.split(' ', 1)

原文由 Scaraffe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 622
1 个回答

"self""cls" PEP 8 定义。正如 Adrien 所说,这不是强制性的。这是一种编码风格。 PEP 8 说:

_函数和方法参数_:

始终使用 self 作为实例方法的第一个参数。

始终使用 cls 作为类方法的第一个参数。

原文由 Baskaya 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题