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

エイドリアン:

私はPythonの継承を理解しようとしています、そして以下のクラスはクラスCarWithBrakesから継承しますCar

class Car :
    def __init__(self , wheels):
        self.wheels = wheels
        self.jsonTransform = {}
        self.jsonTransform['wheels'] = wheels
        
    def toJson(self):
        return self.jsonTransform
    
    def get_wheels(self):
        return self.wheels
    
class CarWithBrakes(Car):
    
    def __init__(self , car, brakes):
        self.car = car
        self.brakes = brakes

    def toJson(self):
        self.jsonTransform = {}
        self.jsonTransform['wheels'] = self.car.wheels
        self.jsonTransform['brakes'] = self.brakes
        return self.jsonTransform
    
c = Car("wheels")
print(c.toJson())

b = CarWithBrakes(c , "brakes")
print(b.toJson())
print(b.get_wheels())

このコードを実行すると、以下が生成されます。

{'wheels': 'wheels'}
{'wheels': 'wheels', 'brakes': 'brakes'}

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-62-9b4b5598414b> in <module>
     30 b = CarWithBrakes(c , "brakes")
     31 print(b.toJson())
---> 32 print(b.get_wheels())

<ipython-input-62-9b4b5598414b> in get_wheels(self)
     11 
     12     def get_wheels(self):
---> 13         return self.wheels
     14 
     15 class CarWithBrakes(Car):

CarWithBrakesから継承するため、wheels属性を使用できませんCarか?

timgeb:

ここには2つの問題があります。

CarWithBrakes__init__メソッドをオーバーライドしますCarオーバーライドされたメソッドでは、wheels属性は設定されません。通常、子クラスと共有する作業(wheels属性の設定など)は、を介して子クラス初期化子に委任しますsuper().__init__(...)

次に、継承と集計を不必要に混在させています。AがCarWithBrakes あり、相続によって車、合格する理由はありませんCar中に保留にインスタンスをCarWithBrakes.__init__

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

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

分類Dev

TypeScriptで、継承されたクラスにメソッドを実装させる方法

分類Dev

派生クラスで継承されたメソッドを無効にする

分類Dev

Delphi OOPは、継承されたクラスからメソッドを再実装するように強制します

分類Dev

Flutter:継承、知っておくべきことと方法、子で使用して実装を追加する必要がある親に実装されたメソッド

分類Dev

子クラスで継承されたメソッドをどのように装飾しますか?

分類Dev

継承されたメソッドで子クラスを参照する方法は?

分類Dev

Rubyの継承された親メソッドでChildクラスを取得するにはどうすればよいですか?

分類Dev

親のメソッドから子の継承されたメンバーにアクセスする方法

分類Dev

Python:継承された親クラスメソッドの呼び出しが失敗する

分類Dev

Django-子クラスにその親抽象クラスのオーバーロードされたsaveメソッドを継承させる

分類Dev

継承されたメソッドに異なるサブクラス値を反映できますか?

分類Dev

継承されたクラスメソッドを使用してサブクラスを維持する方法

分類Dev

C ++の継承されたクラスで通常のメソッドを静的メソッドに変更するにはどうすればよいですか?

分類Dev

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

分類Dev

サブクラスdocstringで「基本クラスに継承されたメソッド」を抑制します

分類Dev

Abstract基本クラスから継承されたクラスにメソッドを追加しますか?

分類Dev

Java:静的メソッドから継承されたクラスのクラスを取得する

分類Dev

継承された静的メソッドを介して継承されたクラスの新しいインスタンスを作成する

分類Dev

SnakeGame型は、継承された抽象メソッドKeyListener.keyReleased(KeyEvent)を実装する必要があります

分類Dev

Javaで継承されたメソッドを実装する必要がありますか?

分類Dev

継承された抽象メソッドを実装するのはなぜですか?

分類Dev

子クラスのメソッド内にラップされたときに継承されたプロパティメソッドを機能させる

分類Dev

クラス内でデコレータを宣言して、すでに装飾された継承されたメソッドを装飾するにはどうすればよいですか?

分類Dev

抽象クラスから継承された保護メソッドをモックする方法

分類Dev

継承されたmixinメソッドをpyqtSlotとして装飾する

分類Dev

親クラスからメソッドを継承する ES6 OOP

分類Dev

継承されたクラスのメソッドを呼び出すことで発行する

分類Dev

親クラスが同じconstフィールドを持つ継承されたメソッドで、子クラスのconstフィールドを使用するにはどうすればよいですか?

Related 関連記事

  1. 1

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

  2. 2

    TypeScriptで、継承されたクラスにメソッドを実装させる方法

  3. 3

    派生クラスで継承されたメソッドを無効にする

  4. 4

    Delphi OOPは、継承されたクラスからメソッドを再実装するように強制します

  5. 5

    Flutter:継承、知っておくべきことと方法、子で使用して実装を追加する必要がある親に実装されたメソッド

  6. 6

    子クラスで継承されたメソッドをどのように装飾しますか?

  7. 7

    継承されたメソッドで子クラスを参照する方法は?

  8. 8

    Rubyの継承された親メソッドでChildクラスを取得するにはどうすればよいですか?

  9. 9

    親のメソッドから子の継承されたメンバーにアクセスする方法

  10. 10

    Python:継承された親クラスメソッドの呼び出しが失敗する

  11. 11

    Django-子クラスにその親抽象クラスのオーバーロードされたsaveメソッドを継承させる

  12. 12

    継承されたメソッドに異なるサブクラス値を反映できますか?

  13. 13

    継承されたクラスメソッドを使用してサブクラスを維持する方法

  14. 14

    C ++の継承されたクラスで通常のメソッドを静的メソッドに変更するにはどうすればよいですか?

  15. 15

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

  16. 16

    サブクラスdocstringで「基本クラスに継承されたメソッド」を抑制します

  17. 17

    Abstract基本クラスから継承されたクラスにメソッドを追加しますか?

  18. 18

    Java:静的メソッドから継承されたクラスのクラスを取得する

  19. 19

    継承された静的メソッドを介して継承されたクラスの新しいインスタンスを作成する

  20. 20

    SnakeGame型は、継承された抽象メソッドKeyListener.keyReleased(KeyEvent)を実装する必要があります

  21. 21

    Javaで継承されたメソッドを実装する必要がありますか?

  22. 22

    継承された抽象メソッドを実装するのはなぜですか?

  23. 23

    子クラスのメソッド内にラップされたときに継承されたプロパティメソッドを機能させる

  24. 24

    クラス内でデコレータを宣言して、すでに装飾された継承されたメソッドを装飾するにはどうすればよいですか?

  25. 25

    抽象クラスから継承された保護メソッドをモックする方法

  26. 26

    継承されたmixinメソッドをpyqtSlotとして装飾する

  27. 27

    親クラスからメソッドを継承する ES6 OOP

  28. 28

    継承されたクラスのメソッドを呼び出すことで発行する

  29. 29

    親クラスが同じconstフィールドを持つ継承されたメソッドで、子クラスのconstフィールドを使用するにはどうすればよいですか?

ホットタグ

アーカイブ