首页 > 解决方案 > 在同一类中的方法中调用变量

问题描述

在此示例代码中:

class new:
    def __init__(self, list):
        self.list = list
    def math(self):
        average = sum(self.list)/len(self.list)
        total = sum(self.list)
        return len(self.list)
    def values(self):
        return self.list

list = new([1,2,3,4])

有没有办法在数学方法中调用平均值和总变量而不将其放入返回函数中(我希望数学函数只返回列表的长度)?我试过这个:

list.math().average

但这给出了一个错误。我希望能够在一行中调用变量。有什么建议么?

标签: python

解决方案


您可以将它们放在实例属性中。

class new:
    def __init__(self, l):
        self.list = l
    def math(self):
        self.average = sum(self.list)/len(self.list)
        self.total = sum(self.list)
        return len(self.list)
    def values(self):
        return self.list

mylist = new([1,2,3,4])
mylist.math()
print(mylist.average, mylist.total)

顺便说一句,不要list用作变量名,它会用该名称替换内置函数。


推荐阅读