18
class Num:
   def __init__(self,num):
      self.n = num

__init__メソッドが戻ることを読みました。None実行するとa=Num(5)、クラスのメソッドNum(5)が呼び出されます。しかし、 returnsの場合は何も参照しないはずですが、代わりにClassのオブジェクトを参照しています。どのように発生しますか?returnまたはクラスのオブジェクトはどうなりますか?__init____init__NoneaaNum__init__None

4

2 に答える 2

38

__init__()を返しますNone__new__()新しいインスタンスを返すのはそれです。

于 2012-08-16T05:51:26.867 に答える
2

a=Num(5) を実行すると、オブジェクトが作成され、新しく作成されたオブジェクトが返されます。__init__ただし、オブジェクトを作成するときに 直接呼び出すほど簡単ではありません。__init__バックグラウンドで Python マジックによって開始プロセスの一部として呼び出されます。そして基本的に__new__はその魔法の一部です。ただし、 をいじりたい場合はまれです__new__。自分が何をしているのかを本当に理解しており、目標を達成するためのより簡単な方法が本当にない場合にのみ、そうする必要があります.

于 2012-08-16T06:02:39.177 に答える