I'm trying to program a basic mean calculator using classes. However, I'm getting the error

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

I have two files: one which contains the class with the mean function and then one which calls it, and that is when I'm getting the error. My code is:

```
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))
```

And the code which throws the error is:

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

·

Santiago Trujillo

`Mean`

is an instance method, so you need to call it on an instance (which will become the `self`

argument for the method invocation).

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

Since the parameters on `Statistics.__init__`

aren't used I'd suggest removing them (or just removing the `__init__`

altogether):

```
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)
```

Note that Python comes with a `statistics`

module that has a `mean`

function built in:

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

·
Santiago Trujillo
Report

You define the instance method, but there is no instance.

Also, it is better to change the 'Mean' to 'mean'.

·
Santiago Trujillo
Report

Loading