TypeError: Mean() missing 1 required positional argument: 'data'

TypeError: Mean() missing 1 required positional argument: 'data'

我正在尝试使用 classes 编写一个基本的均值计算器。但是,我收到错误

TypeError: Mean() missing 1 required positional argument: 'data'

我有两个文件:一个包含 class 和 mean 函数,另一个调用它,这就是我遇到错误的时候。我的代码是:

class Statistics:
    def __init__(self,mean_x,mean_y,var,covar):
        self.mean_x=mean_x
        self.mean_y=mean_y
        self.var=var
        self.covar=covar
    
    def Mean(self,data):
        return sum(data)/float(len(data))

抛出错误的代码是:

from Statistics import Statistics 
X=(0,1,3,5)
mean_x=Statistics.Mean(X)
print(mean_x)

Mean是一个实例方法,所以你需要在一个实例上调用它(这将成为方法调用的self参数)。

statistics = Statistics(None, None, None, None)
mean_x = statistics.Mean((0, 1, 3, 5))

由于未使用 Statistics.__init__ 上的参数,我建议将其删除(或完全删除 __init__):

class Statistics:
   
    def mean(self, data):
        return sum(data)/float(len(data))
from Statistics import Statistics 
X = (0,1,3,5)
statistics = Statistics()
mean_x = statistics.mean(X)
print(mean_x)

请注意 Python 附带一个 statistics 模块,该模块内置 mean 函数:

import statistics

X = (0,1,3,5)
mean_x = statistics.mean(X)
print(mean_x)

你定义了实例方法,但是没有实例。

另外,最好把'Mean'改成'mean'。