Я просто изучаю Python, и я родом из C-фона, поэтому, пожалуйста, дайте мне знать, если у меня есть путаница/смешение между ними.
Предположим, что у меня есть следующий класс:
class Node(object):
def __init__(self, element):
self.element = element
self.left = self.right = None
@classmethod
def tree(cls, element, left, right):
node = cls(element)
node.left = left
node.right = right
return node
Это класс с именем Node
, который перегружает конструктор, чтобы иметь возможность обрабатывать различные аргументы, если это необходимо.
В чем разница между определением self.element
только в __init__
(как показано выше), а не следующим образом:
class Node(object):
element, left, right = None
def __init__(self, element):
self.element = element
self.left = self.right = None
Является ли self.element
в __init__
тем же, что и переменная класса element
? Разве это не просто перезаписать element
от None
до значения element
, переданного в __init__
?