複数のinit継承を使用してsuper()を実装するにはどうすればよいですか?

フロンヌ

複数の引数が必要なイニシャライザーで複数の継承を含む演習を行っていましたが、各スーパークラスを手動で呼び出す代わりに、super()でこれを解決するにはどうすればよいですか?


class One:
    def __init__(self, address, phone):
        self.address = address
        self.phone = phone

class Two:
    def __init__(self, city):
        self.city = city

class Three(One,Two):
    def __init__(self, country, address, phone, city):
        self.country = country
        One.__init__(self, address, phone)
        Two.__init__(self, city)
        print(f"{address}, " + f"{phone}, " + f"{self.city}, " + f"{self.country}")

i = Three("Acountry", "AnAddress", "Aphone", "Acity")

これは正常に機能し、すべての引数が適切かつ順番に出力されsuper()ますが、ここで実装する方法がわかりません

サブクラスに2つのスーパーを追加してみました:

        super().__init__(address, phone)
        super().__init__(city)

また、親クラスにsuper()を追加して、次のことを指すようにしclass Twoます。

class One:
    def __init__(self, address, phone, city):
        self.address = address
        self.phone = phone
        super().__init__(city)

class Two:
    def __init__(self, city):
        self.city = city

class Three(One,Two):
    def __init__(self, country, address, phone, city):
        self.country = country
        super().__init__(address, phone)
        print(f"{address}, " + f"{phone}, " + f"{self.city}, " + f"{self.country}")

i = Three("Acountry", "AnAddress", "Aphone", "Acity")

動作しません。

super()動作する元のコードにどのように実装できますか?

パトリック・ハウ

Raymond Hettingerによるこの記事を読む必要があります。この記事では、どのsuperように機能するように設計されているかを説明し、それを使用するクラスがどのように見えるかについて概説しています。彼は、引数をキーワード引数として渡しsuper().__init__、すべての最後に呼び出すことをお勧めします__init__

class One:
    def __init__(self, address, phone, **kwargs):
        self.address = address
        self.phone = phone
        super().__init__(**kwargs)

class Two:
    def __init__(self, city, **kwargs):
        self.city = city
        super().__init__(**kwargs)

class Three(One,Two):
    def __init__(self, country, address, phone, city, **kwargs):
        self.country = country
        super().__init__(address=address, phone=phone, city=city, **kwargs)
        print(f"{address}, " + f"{phone}, " + f"{self.city}, " + f"{self.country}")

i = Three("Acountry", "AnAddress", "Aphone", "Acity")

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

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

分類Dev

LaravelのEloquentを使用して単一テーブル継承を実装するにはどうすればよいですか?

分類Dev

EF7 / .NETCoreで複数のデータベースにDbContext継承を実装するにはどうすればよいですか

分類Dev

継承を使用してメソッドチェーンを実装するにはどうすればよいですか?

分類Dev

Composerオートローダーを使用して継承を実装するにはどうすればよいですか?

分類Dev

Telegram APIを使用して承認を実装するにはどうすればよいですか?

分類Dev

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

分類Dev

AngularJSで継承を実装するにはどうすればよいですか?

分類Dev

クラス継承を使用して引数を渡すにはどうすればよいですか?

分類Dev

継承なしでDTOの重複を回避するにはどうすればよいですか?

分類Dev

同じオブジェクトを参照する複数のインスタンス変数なしで継承を実装するにはどうすればよいですか?

分類Dev

式でCOUNT()を複数回使用してOVERを実装するにはどうすればよいですか?

分類Dev

FsCheckを使用して複数の引数の生成を実装するにはどうすればよいですか?

分類Dev

JSON-LDを使用して複数のリストでSchema.orgを正しく実装するにはどうすればよいですか?

分類Dev

多重継承を使用してDjangoフォームを作成するにはどうすればよいですか?

分類Dev

initメソッドの継承を禁止するにはどうすればよいですか?

分類Dev

クラスにインターフェイスを実装し、別のクラスから継承させるにはどうすればよいですか?

分類Dev

RecyclerViewとCardViewを使用してSearchViewに複数のフィルターを実装するにはどうすればよいですか?

分類Dev

複数のReactReduxコンポーネントにrequestAnimationFrameを使用してゲームループを実装するにはどうすればよいですか?

分類Dev

instanceof関数を使用して継承で特定のカテゴリを出力するにはどうすればよいですか?

分類Dev

JavaScript関数を継承するにはどうすればよいですか?

分類Dev

`splitAt`を使用してVecに` rotate`関数を実装するにはどうすればよいですか?

分類Dev

Cで連分数を使用して自然対数を実装するにはどうすればよいですか?

分類Dev

RustでWindowsIOCPを使用して非同期関数を実装するにはどうすればよいですか?

分類Dev

引数を使用してLuaでrfindを実装するにはどうすればよいですか?

分類Dev

Delphiで、IComparableを実装し、TEqualityComparerから継承するクラスを作成するにはどうすればよいですか?

分類Dev

複数要素の構造体を使用してリンクリストを実装するにはどうすればよいですか?

分類Dev

Pythonを使用して `単項関数chainer`を実装するにはどうすればよいですか?

分類Dev

APIを使用して除外関数を実装するにはどうすればよいですか

Related 関連記事

  1. 1

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

  2. 2

    LaravelのEloquentを使用して単一テーブル継承を実装するにはどうすればよいですか?

  3. 3

    EF7 / .NETCoreで複数のデータベースにDbContext継承を実装するにはどうすればよいですか

  4. 4

    継承を使用してメソッドチェーンを実装するにはどうすればよいですか?

  5. 5

    Composerオートローダーを使用して継承を実装するにはどうすればよいですか?

  6. 6

    Telegram APIを使用して承認を実装するにはどうすればよいですか?

  7. 7

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

  8. 8

    AngularJSで継承を実装するにはどうすればよいですか?

  9. 9

    クラス継承を使用して引数を渡すにはどうすればよいですか?

  10. 10

    継承なしでDTOの重複を回避するにはどうすればよいですか?

  11. 11

    同じオブジェクトを参照する複数のインスタンス変数なしで継承を実装するにはどうすればよいですか?

  12. 12

    式でCOUNT()を複数回使用してOVERを実装するにはどうすればよいですか?

  13. 13

    FsCheckを使用して複数の引数の生成を実装するにはどうすればよいですか?

  14. 14

    JSON-LDを使用して複数のリストでSchema.orgを正しく実装するにはどうすればよいですか?

  15. 15

    多重継承を使用してDjangoフォームを作成するにはどうすればよいですか?

  16. 16

    initメソッドの継承を禁止するにはどうすればよいですか?

  17. 17

    クラスにインターフェイスを実装し、別のクラスから継承させるにはどうすればよいですか?

  18. 18

    RecyclerViewとCardViewを使用してSearchViewに複数のフィルターを実装するにはどうすればよいですか?

  19. 19

    複数のReactReduxコンポーネントにrequestAnimationFrameを使用してゲームループを実装するにはどうすればよいですか?

  20. 20

    instanceof関数を使用して継承で特定のカテゴリを出力するにはどうすればよいですか?

  21. 21

    JavaScript関数を継承するにはどうすればよいですか?

  22. 22

    `splitAt`を使用してVecに` rotate`関数を実装するにはどうすればよいですか?

  23. 23

    Cで連分数を使用して自然対数を実装するにはどうすればよいですか?

  24. 24

    RustでWindowsIOCPを使用して非同期関数を実装するにはどうすればよいですか?

  25. 25

    引数を使用してLuaでrfindを実装するにはどうすればよいですか?

  26. 26

    Delphiで、IComparableを実装し、TEqualityComparerから継承するクラスを作成するにはどうすればよいですか?

  27. 27

    複数要素の構造体を使用してリンクリストを実装するにはどうすればよいですか?

  28. 28

    Pythonを使用して `単項関数chainer`を実装するにはどうすればよいですか?

  29. 29

    APIを使用して除外関数を実装するにはどうすればよいですか

ホットタグ

アーカイブ