親クラスのinitは継承中に実行されています

偽物

OOPの1つの基本的な質問。

test.py ファイルの内容:

class test(object):
    def __init__(self):
        print 'INIT of test class'
obj=test()

次に、別のファイルを開きました。

上記のテストクラスから継承しました。

from test import  test
class test1(test):
    def __init__(self):
        pass

したがって、このクラスを実行すると、親クラスからinitが実行されます。

私はそれを使用することでそれを回避できることを読みました

if __name__='__main__'

これを克服することはできますが、私の質問は、このクラスを2番目のファイルにのみインポートしているのに、なぜ親クラスのinitが実行されているのか、オブジェクト作成コードはどのように実行されたのかということです。

マイクミュラー

モジュールをインポートすると、を含むすべてのモジュールレベルのステートメントが実行されますobj=test()これを回避するには、インポート時ではなく、メインプログラムとして実行する場合にのみインスタンスを作成します。

class test(object):
    def __init__(self):
        print 'INIT of test class'

if __name__ == '__main__':
     obj=test()

問題は継承ではなくインポートです。あなたの場合obj=test()、インポート時に実行します

from test import test

インポートするとtest、その名前__name__test。になります。ただし、コマンドラインでメインプログラムとしてプログラムを実行するとpython test.py、その名前は__main__。になります。したがって、インポートの場合、次obj=test()を使用するとスキップします。

if __name__ == '__main__':
     obj=test()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

すべての変数を親クラスからinit関数を持つ基本クラスに継承するにはどうすればよいですか?

分類Dev

正しい親クラスを継承できません。initは1つの位置引数を取りますが、2つが指定されました

分類Dev

Javaでの継承中に、親クラスで宣言された配列が子クラスに表示されないのはなぜですか?

分類Dev

C ++ Derivedクラスに継承されないものは何ですか?どうやら、operator =といくつかのコンストラクターは実際に継承されています

分類Dev

__init__は二重継承クラスに対して呼び出されていません

分類Dev

TypeError:URLからのクラスの継承は禁止されています

分類Dev

親クラスのすべての機能を継承するにはどうすればよいですか?

分類Dev

クラスは親クラスと関係を持って最初のクラス属性を保存し、次に保存された属性を継承できますか?

分類Dev

PHPのクラス継承で親メソッドのみを実行するにはどうすればよいですか?

分類Dev

PHPの親クラスまたは名前空間を使用して継承されたクラスにアクセスする

分類Dev

初期化時に継承されたクラス変数は、親によって設定された独自の値をオーバーライドします

分類Dev

初期化時に継承されたクラス変数は、親によって設定された独自の値をオーバーライドします

分類Dev

__init__の引数ではない場合に、継承されたクラスの属性値を設定する

分類Dev

名前付きtupleから継承されたクラスは、再定義された__init__を使用して親プロパティへのアクセスをどのように維持しますか?

分類Dev

継承されたクラスで親メソッドを実行する

分類Dev

Pythonの子クラスの変更を最小限に抑えて、親__init __()から継承された属性をわずかに変更するにはどうすればよいですか?

分類Dev

すでに含まれている別のクラスを継承するクラスを継承する

分類Dev

継承されたメソッドを親クラスに実装する

分類Dev

Pythonの多重継承は、2番目に継承された基本クラスのクラス変数またはメソッドを表示していません

分類Dev

親クラスから子クラスの__init__に__init__属性を継承する方法は?

分類Dev

C ++の他の抽象クラスから複数継承されている抽象クラスの実装を作成する方法はありますか?

分類Dev

基本クラスの静的情報には、継承されたクラスごとに同じ情報が含まれています。解決する方法は?

分類Dev

Pythonクラスの継承-ベースはサブクラスによって変更されます

分類Dev

Scalaケースクラスは、継承された関数と継承されていない関数の両方で一致できますか?

分類Dev

さまざまに継承されたすべてのクラスの関数を呼び出すにはどうすればよいですか?

分類Dev

継承されたデストラクタは仮想テーブル内に含まれていますか?

分類Dev

親クラスでのprint関数の使用、「継承された」変数の定義について

分類Dev

c#は基本クラスの継承について混乱しています

分類Dev

super()を使用して、複数の父親クラスから特定のクラスを継承するにはどうすればよいですか?

Related 関連記事

  1. 1

    すべての変数を親クラスからinit関数を持つ基本クラスに継承するにはどうすればよいですか?

  2. 2

    正しい親クラスを継承できません。initは1つの位置引数を取りますが、2つが指定されました

  3. 3

    Javaでの継承中に、親クラスで宣言された配列が子クラスに表示されないのはなぜですか?

  4. 4

    C ++ Derivedクラスに継承されないものは何ですか?どうやら、operator =といくつかのコンストラクターは実際に継承されています

  5. 5

    __init__は二重継承クラスに対して呼び出されていません

  6. 6

    TypeError:URLからのクラスの継承は禁止されています

  7. 7

    親クラスのすべての機能を継承するにはどうすればよいですか?

  8. 8

    クラスは親クラスと関係を持って最初のクラス属性を保存し、次に保存された属性を継承できますか?

  9. 9

    PHPのクラス継承で親メソッドのみを実行するにはどうすればよいですか?

  10. 10

    PHPの親クラスまたは名前空間を使用して継承されたクラスにアクセスする

  11. 11

    初期化時に継承されたクラス変数は、親によって設定された独自の値をオーバーライドします

  12. 12

    初期化時に継承されたクラス変数は、親によって設定された独自の値をオーバーライドします

  13. 13

    __init__の引数ではない場合に、継承されたクラスの属性値を設定する

  14. 14

    名前付きtupleから継承されたクラスは、再定義された__init__を使用して親プロパティへのアクセスをどのように維持しますか?

  15. 15

    継承されたクラスで親メソッドを実行する

  16. 16

    Pythonの子クラスの変更を最小限に抑えて、親__init __()から継承された属性をわずかに変更するにはどうすればよいですか?

  17. 17

    すでに含まれている別のクラスを継承するクラスを継承する

  18. 18

    継承されたメソッドを親クラスに実装する

  19. 19

    Pythonの多重継承は、2番目に継承された基本クラスのクラス変数またはメソッドを表示していません

  20. 20

    親クラスから子クラスの__init__に__init__属性を継承する方法は?

  21. 21

    C ++の他の抽象クラスから複数継承されている抽象クラスの実装を作成する方法はありますか?

  22. 22

    基本クラスの静的情報には、継承されたクラスごとに同じ情報が含まれています。解決する方法は?

  23. 23

    Pythonクラスの継承-ベースはサブクラスによって変更されます

  24. 24

    Scalaケースクラスは、継承された関数と継承されていない関数の両方で一致できますか?

  25. 25

    さまざまに継承されたすべてのクラスの関数を呼び出すにはどうすればよいですか?

  26. 26

    継承されたデストラクタは仮想テーブル内に含まれていますか?

  27. 27

    親クラスでのprint関数の使用、「継承された」変数の定義について

  28. 28

    c#は基本クラスの継承について混乱しています

  29. 29

    super()を使用して、複数の父親クラスから特定のクラスを継承するにはどうすればよいですか?

ホットタグ

アーカイブ