小智 12
我相信这是经常使用的模式.
class A(object):
def x(self):
self.y()
def y(self):
print('default behavior')
class B(A):
def y(self):
print('Child B behavior')
class C(A):
def z(self):
pass
>>>B().x()
Child B behavior
>>>C().x()
default behavior
Run Code Online (Sandbox Code Playgroud)
它有点像抽象类,但提供默认行为.但是不记得我头顶上的图案名称.
这是我刚刚尝试过的:
class A(object):
def x(self):
print self.y()
class B(A):
def y(self):
return 1
>>> B().x()
1
Run Code Online (Sandbox Code Playgroud)
因此,除非您遇到一些特定问题,否则只需从基类中的子类调用一个方法,它就应该可以工作。
这是一个非常广泛的问题。由于您没有提供示例代码,我将只展示最简单的示例:
class A(object):
def meth1(self, a):
self.meth2(a, a*a)
class B(A):
def meth2(self, a, b):
return b / a
b = B()
b.meth1(10)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18829 次 |
| 最近记录: |