如何在Python类函数中隐式传递参数

乌斯塔纳

我正在编写一个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()

并获得相同的结果。就像我们看到的,不同的功能可用于不同的数据类型。任何对此的见解将受到高度赞赏。谢谢

冠军

您可以将其添加到__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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章