2016-07-31 38 views
1

当我运行下面的代码时,我得到一个AttributeError:'set'对象没有属性findMean。我究竟做错了什么?在同一个类中的另一个函数中调用的函数的AttributeError - Python

class BasicStats:  

    def findMean(self, num = {}): 
     length = len(num) 

     sum = 0 
     for x in num: 
      sum = sum + x 

     mean =sum/length 
     return mean  

    def findVariance(self, num = {}): 
     mean = self.findMean(num) 
     length = len(num) 

     squared_difference = 0 
     for x in num: 
      squared_difference = squared_difference + (x-mean)**2 

     variance = squared_difference/length 
     return variance 

    arr = {1, 23, 343.34, 2}  
    findVariance(arr) 

回答

3

这是因为该范围内的selfset。更具体地说,它是arr(这是一个集合,你作为第一个参数传入)。

self关键字仅适用于被称为对抗类的实例函数(这个特殊类型的函数调用的方法,阅读更多here

+0

感谢您的帮助。我需要做些什么才能使它起作用? – user2465510

+0

你应该在类**之外尝试类似** **:'stats = BasicStats()'然后'print(stats.findMean(arr))' –

相关问题