簡體   English   中英

在 Python 中獲取父 class 的姓名

[英]Get name of parent class in Python

我正在嘗試在基類 class 中創建一個方法,該方法允許所有子類訪問它們繼承的直接父類 class 的名稱。 下面的代碼不起作用,但我怎么能實現類似的東西呢?

class A:
    def get_parent_name(self):
        return super().__name__

class B(A):
    pass

class C(B):
    pass

C.get_parent_name()

# Expected output: 'B'

如果這不是一個措辭良好的問題,我提前道歉。 這是我第一次在 Stack Overflow 上發帖,所以任何改進我的問題的建議也將不勝感激

您可以使用C.__mro__C.mro()

這是基於您的三個課程的完整示例:

class A:
    def __init__(self):
        pass
    def parent(self):
        return self.__class__.__bases__[0]

class B(A):
    def __init__(self):
        super(B, self).__init__()

class C(B):
    def __init__(self):
        super(C, self).__init__()

print(A().parent())
print(B().parent())
print(C().parent())

Output:

<class 'object'>
<class '__main__.A'>
<class '__main__.B'>

暫無
暫無

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

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