Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz Siriusb #2032 üzenetére

    Először is: a ClassC feleslegesen örököl a ClassA-tól, hiszen a ClassB már megörökölt tőle mindent.

    "Szeretném ClassC-ben végrehajtatni a ClassB.f1()-et anélkül, hogy bármi mást örökölne ClassB-ből"

    Erről már lekéstél, tekintve, hogy a ClassC a ClassB-ből örököl... :)

    Feltételezve, hogy a ClassC-t úgyis példányosítod, a super() lesz a megoldás

    class A:
    def f1(self):
    print('f1 in Class A')

    class B(A):
    def f1(self):
    print('f1 in Class B')

    class C(B):
    def f1(self):
    print('f1 in Class C')

    def f2(self):
    super().f1()

    c = C()
    c.f2()

    f1 in Class B

    Ha pedig konkrétan a ClassA f1() függvényét akarod elérni, akkor:

    class A:
    def f1(self):
    print('f1 in Class A')

    class B(A):
    def f1(self):
    print('f1 in Class B')

    class C(B):
    def f1(self):
    print('f1 in Class C')

    def f2(self):
    super(B, self).f1()

    c = C()
    c.f2()

    f1 in Class A

    A classmethod is mehet, de akkor nem kell a ClassC-nek a ClassB-ből örökölnie.

    [ Szerkesztve ]

    "We spared no expense"

Új hozzászólás Aktív témák