Membros da classe Python

Eu estou apenas aprendendo Python e eu venho de um background em C então por favor me avise se eu tiver alguma confusão / confusão entre ambos.

Suponha que eu tenha a seguinte classe:

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

Esta é uma classe chamadaNode, que sobrecarrega o construtor, para poder manipular argumentos diferentes, se necessário.

Qual é a diferença entre definirself.element em__init__ somente (como mostrado acima) ao invés de fazer o seguinte:

class Node(object):
    element, left, right = None
    def __init__(self, element):
        self.element = element
        self.left = self.right = None

Não éself.element em__init__ o mesmo que o da classeelement variável definida? Isso não seria apenas substituir?element deNone aoelement valor passado em__init__?

questionAnswers(6)

yourAnswerToTheQuestion