2016-11-28 4 views
-1

私は「Node」という名前のクラスがあるPythonモジュールが与えられています。私は単にデータや変数として次に言及し、[なし]に割り当てていない場合、これは異なるだろうか知りたいPythonの__init__メソッドでの変数の使用

def __init__(self, data = None, next = None): 
    self.fata = data 
    self._next = next 

:クラス内の__init__方法は以下の通りでありますか?このように:

def __init__(self, data, next): 
    self.fata = data 
    self._next = next 
+0

そのようにするとどうなりますか? topが指定されていない場合、デフォルト値が設定されます。デフォルト値を指定しないと、ノードをインスタンス化した後にアクセスしようとすると 'fata'と' _next'はどうなりますか? – Fallenreaper

+0

実際にコードの各ブロックの2行目は、 'self.data = data'を意味していました。 –

+0

試しましたか?何が起こった? – jonrsharpe

答えて

0

その後

class A: 
    def __init__(self, data = None, next = None): 
     self._data = data 
     self._next = next 

class B: 
    def __init__(self, data, next): 
     self._data = data 
     self._next = next 

場合は、例えば:

>>> x = A(1,2) 
>>> y = B(1,2) 
>>> #no difference so far, but 
>>> z = A() 
>>> w = B() 
Traceback (most recent call last): 
    File "<pyshell#8>", line 1, in <module> 
    w = B() 
TypeError: __init__() missing 2 required positional arguments: 'data' and 'next' 

必要な引数が欠落して実行時エラーです。デフォルト値はNoneではありません。

関連する問題