如何在Python中实现链操作?
问题描述:
class Array:
def __init__(self):
self.list = []
def add(self, num):
self.list.append(num)
a = Array()
a.add(1).add(2)
我想添加数字1,2 self.list这样。 我该如何执行?如何在Python中实现链操作?
答
您插入后返回实例本身为第二操作,那么你将有实例本身,因此您可以执行添加操作:
def add(self, num):
self.list.append(num)
return self
答
返回对象本身
def add(self, num):
self.list.append(num)
return self
答
作为一个替代方法,为什么不只是让你的add
方法取值列表作为输入?好像它会更容易所以现在像
def add(self, vals):
self.list += vals
使用可以
a.add([1,2])
而不是
a.add(1).add(2)
''从add' – vaultah
可能是OP相关回报self': http://stackoverflow.com/questions/36688966/let-a-class-behave-like-its-a-list-in-python/36690145 – timgeb
[用于类实例变量的对象方法链接的Python方法]的可能重复( HTTP:// stackov erflow.com/questions/13846202/python-way-for-object-method-chaining-for-class-instance-variables) – TemporalWolf