2

関数のスペルが間違っているコードを調べて__init__()いました (アンダーバーが 4 つではなく合計 3 つありました)。そして、オブジェクトが適切な__init__().

自動的に挿入されるデフォルトの初期化子はありますか? __new__呼び出されるデフォルトはありますか? 引数を持つコンストラクターが失敗するのはなぜですか?

class TestClass(object):
    def do_something(self):
        print("Hello From TestClass!")

# What is called here?
instance = TestClass()
instance.do_something()

# Why does this fail?
argument = 100
instance = TestClass(argument)
4

3 に答える 3

2

自動的に挿入されるデフォルトの初期化子はありますか?

はい。上書き/継承されない限り、すべてのクラスにデフォルトのダミーコンストラクターがあります。

__new__呼び出されるデフォルトはありますか?

はい。繰り返しますが、デフォルトでは、実際にオブジェクトを作成してそのタイプを設定すること以外は、あまり機能しません。

引数を持つコンストラクターが失敗するのはなぜですか?

デフォルトのコンストラクターは引数を取らず、何もしないためです。

于 2015-12-31T16:47:33.433 に答える