【发布时间】:2019-11-11 23:07:37
【问题描述】:
考虑以下代码示例,该示例显示了一个简单的类,该类允许通过返回 self 来链接方法。
import inspect
class classname(object):
def __init__(self):
self.hold = None
def funcname(self):
self.hold = 'a'
return self
def method(self, c):
self.hold = self.hold * c
return self
c = classname().funcname().method(10)
我想要做的是以某种方式检查c,以便我可以看到在这个类上调用了funcname 和method。
【问题讨论】:
-
您不能,该对象不保留对此的记忆,您将不得不自己跟踪它。如果这是你必须知道的事情,这听起来像是你的设计的一个基本问题。
-
感谢@juanpa.arrivillaga 的设计反馈。但是您正在对我对此类帖子的用例进行假设。如果无法完成,我理解,但必须有办法获取此信息。
-
我并没有说这是不可能的,只是你必须自己跟踪这一点。您必须使用对象的内部状态手动跟踪正在调用的内容,例如调用列表,你可以编写一个 decotrator 来分解一些 biolerplate,并且更明确。