Por que cls
às vezes é usado em vez de self
como argumento nas classes Python?
Por exemplo:
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)
static member
enon-static members
, entendeu no contexto de c ++Essa é uma pergunta muito boa, mas não tão desejável quanto a pergunta. Existe diferença entre o método usado 'self' e 'cls', embora analogamente estejam no mesmo local
Agora você pode ver que ambas são função da lua, mas uma pode ser usada dentro da classe, enquanto outro nome da função moon pode ser usado para qualquer classe.
Para uma abordagem de programação prática:
Ao projetar a classe de círculo, usamos o método area como cls em vez de self, porque não queremos que a área seja limitada apenas a uma classe específica de círculo.
fonte
- Truques em Python
fonte