假设我得到以下类:在python中进行函数链接时,有没有办法引用“当前”对象?
class foo(object):
def __init__(self, int):
self.count = int
def increment(self, int):
return foo(int + 1)
def decrement(self, int):
return foo(int - 1)
我的目标是链在一起的函数调用,而不必每个对象赋值给一个变量,达到我想要的结果。举例来说,我知道我能做到这一点:
obj = foo(0)
obj = obj.increment(obj.count)
obj = obj.decrement(obj.count)
obj = obj.increment(obj.count)
obj = obj.decrement(obj.count)
print obj.count
0
,但我希望能够做到这一点:
finalcount = obj(0).increment(?.count).decrement(?.count)
,但我不知道是否有东西,我可以把?
的位置指向正在调用方法的对象,因为该对象尚未被分配名称。
只是在每个方法结束时返回self。短语*“流利的界面”*可能有助于您的研究。 – jonrsharpe
@jonrsharpe那么,这将不会在OP的例子中创建新实例。 – wim
这个类的方法实际上没有对它的实例变量做任何事情。你确定'increment'和'decrement'应该为增加的内容提供一个参数,而不是递增'self.count'?你确定他们应该创建一个修改(也许是返回)'self'的新对象实例吗? – user2357112