[英]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.