![]() |
1
4
如果您不介意复制子类中的原始方法,可以使用下面的技术。
|
![]() |
2
2
是否有原因不能重写基类的
如果您不想执行上述操作:
方法对象不支持写入
但这类似于一种迂回的重新定义方法
|
![]() |
3
1
看看functools.wrapps()修饰器;它可以完成所有这些工作,但是如果您能让它在正确的上下文中运行,我现在还不知道。 |
![]() |
4
0
文档字符串存储在
基本上:
|
![]() |
5
0
我同意最简单、最简单的方法是在子类中重新定义execute,并让它调用基类的execute方法:
这是很少的代码来完成您想要的工作;唯一的缺点是您必须在扩展基的每个子类中重复此代码。然而,这是为你想要的行为付出的一个小代价。
如果您希望使用一种草率而冗长的方式来确保动态生成用于执行的docstring,那么您可以使用描述符协议,该协议的代码比这里的其他建议要少得多。这很烦人,因为您不能只在现有函数上设置描述符,这意味着必须使用
下面是实现这一点的代码,但请记住,我上面的示例非常简单,而且更像是蟒蛇:
|
![]() |
Arun Kaliraja Baskaran · 元类可以有方法吗? 7 年前 |
![]() |
JanJJ · 企业架构师通过派生防止扩展元类 7 年前 |
![]() |
Kallz · 在多处理中生成单例类 7 年前 |
![]() |
DanielSank · 如何将修饰符应用于超类的方法? 11 年前 |