Dlaczego cls
czasami jest używany zamiast self
jako argument w klasach Python?
Na przykład:
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
inon-static members
zrozumiałem to w kontekście c ++To bardzo dobre pytanie, ale nie tak pożądane jak pytanie. Istnieje różnica między stosowaną metodą „self” i „cls”, chociaż analogicznie są one w tym samym miejscu
Teraz możesz zobaczyć, że oba są funkcją księżyca, ale jedna może być używana w klasie, podczas gdy inna funkcja moon może być używana dla dowolnej klasy.
Dla praktycznego podejścia do programowania:
Projektując klasę koła, używamy metody pola jako cls zamiast siebie, ponieważ nie chcemy, aby obszar był ograniczony tylko do określonej klasy koła.
źródło
- Sztuczki w języku Python
źródło