私は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__