Это очень хороший вопрос, но не такой как вопрос.Существует разница между используемым методом «self» и «cls», хотя аналогично они находятся в одном и том же месте
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 можетиспользоваться для любого класса.
Для практического подхода к программированию:
При разработке класса круга мы используем метод area в качестве cls вместо self, потому что мы не хотим, чтобы area кбыть ограниченным только определенным классом круга.