Почему 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)
static member
иnon-static members
поняли это в контексте c ++Это очень хороший вопрос, но не такой как вопрос. Существует разница между используемым методом «self» и «cls», хотя аналогично они находятся в одном месте
Теперь вы можете видеть обе функции луны, но одну можно использовать внутри класса, в то время как другую функцию с именем moon можно использовать для любого класса.
Для практического подхода к программированию:
При разработке класса круга мы используем метод area как cls вместо self, потому что мы не хотим, чтобы область была ограничена только определенным классом круга.
источник
- Python Tricks
источник