2017-02-23 171 views
1
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中实现链操作?

+4

''从add' – vaultah

+0

可能是OP相关回报self': http://stackoverflow.com/questions/36688966/let-a-class-behave-like-its-a-list-in-python/36690145 – timgeb

+0

[用于类实例变量的对象方法链接的Python方法]的可能重复( HTTP:// stackov erflow.com/questions/13846202/python-way-for-object-method-chaining-for-class-instance-variables) – TemporalWolf

回答

1

您插入后返回实例本身为第二操作,那么你将有实例本身,因此您可以执行添加操作:

def add(self, num): 
    self.list.append(num) 
    return self 
1

返回对象本身

def add(self, num): 
    self.list.append(num) 
    return self 
0

作为一个替代方法,为什么不只是让你的add方法取值列表作为输入?好像它会更容易所以现在像

def add(self, vals): 
    self.list += vals 

使用可以

a.add([1,2]) 

而不是

a.add(1).add(2)