我正在写一个python类和相关的函数。假设以下是一个具有函数的类,该函数将数字列表的所有值相加并返回总和
alist = [2,3,7,4,7]
MyClasss(object):
def __init__(self):
print("Roses are red")
def add_list(self,thelist):
j = 0
for i in the list:
j = j+i
return j
a = MyClasss()
print("sum is ",a.add_list(alist))
上面的查询将返回列表的总和就好了。
我的问题是: 是否有可能编写此查询或创建一个数据对象,我们不必在括号中传递数据对象而是将其写为类似
alist.add_list()
并获得相同的结果。就像我们看到不同的功能可用于不同的数据类型。 任何有关这方面的见解将受到高度赞赏。谢谢
答案 0 :(得分:4)
您可以在构造
上将其添加到__init__
class MyClasss(object):
def __init__(self, theList):
self.theList = theList
def add_list(self):
return sum(self.theList)
>>> a = MyClasss([2,3,7,4,7])
>>> print("sum is ", a.add_list())
23
>>> print("sum is ", a.add_list())
23
另一种方法是从functools.partial
创建一个部分函数并调用:
>>> import functools as ft
>>> a = MyClasss()
>>> a.add_list = ft.partial(a.add_list, [2,3,7,4,7])
>>> a.add_list()
23