簡體   English   中英

使用父類方法繼承而不調用父類

[英]inheritance using parent class method without calling parent class

有什么方法可以訪問父類方法,而無需實際調用該類?

例如:

1)

class A():
    def __init__(self):
        print('A class')

    def name():
        print('name from A class')

2)

class B(A):
    # I want to make use of name without actually calling or running A.
    # Is there any way to do that?

是的,您可以直接調用它。 這工作正常:

class A():
    def __init__(self):
        print('A class')

    def name(self):
        print('name from A class')

class B(A):
    pass

B().name()

> A class
> name from A class

您也可以在課程內部使用它,例如

class B(A):
    def b_name(self):
        print('I am B!')
        self.name()

如果您要解決的問題是調用A的init ,那么也許您應該將name轉換為classmethod:

class A():
    def __init__(self):
        print('A class')

    @classmethod
    def name(self):
        print('name from A class')

A.name()

> name from A class

或者,你可以給B中的init不調用父類,從而實例化時不調用A的初始化。 我不特別推薦這種方法:

class A():
    def __init__(self):
        print('A class')

    def name(self):
        print('name from A class')

class B(A):
    def __init__(self):
        print('B class')

    def b_name(self):
        print('b_name from B class')
        self.name()

B().b_name()

> B class
> b_name from B class
> name from A class

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM