What is the 'cls' variable used for in Python classes?
为什么在Python类中有时使用
例如:
1 2 3 4 5 6 7 8 | 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) |
Function and method arguments:
Always use
self for the first argument to instance methods.Always use
cls for the first argument to class methods.
它用于类方法的情况。请查看此参考以了解更多详细信息。
编辑:正如阿德里安所阐明的,这是一个惯例。您实际上可以使用除
这是一个很好的问题,但并不像问题那样需要。"self"和"cls"使用的方法虽然相似,但它们在同一个地方。
1 2 3 4 5 6 7 8 9 | def moon(self,moon_name): self.MName =moon_name #but here cls method its use is different def moon(cls,moon_name): instance=cls() instance.MName=moon_name |
现在您可以看到这两个函数都是moon函数,但其中一个可以在类内使用,而另一个函数名moon可以用于任何类。
对于实际编程方法:
在设计循环类时,我们使用区域方法作为cls而不是self,因为我们不希望区域仅限于特定的循环类。