我怎么称呼这堂课?

时间:2018-07-18 10:44:44

标签: python function class average

class average :
        def myinput():
                n=0
                mylist=[]
                #will be ended when input = -1 
                while n !='-1' :
                    n=raw_input('>>>')
                    if n!='-1' :
                        mylist.append(n)
                print lol(mylist)
        def lol(mylist):
               try: 
                mysum=0.0
                for i in mylist :
                    mysum=mysum+int(i)
                return mysum/len(mylist)
               except:
                  return  'please don\'t Enter charecters just Number' 
ave=average
ave.myinput()

此代码有什么问题?

  

$ winpty python test3.py Traceback(最近一次调用为最新):
  
中的文件“ test3.py”,第20行       ave.myinput()TypeError:必须使用
调用未绑定方法myinput()   平均实例作为第一个参数(代之以无用)“”“

3 个答案:

答案 0 :(得分:1)

首先,您应该重命名您的类,Python命名约定确实很强大,并且类应始终以大写字母开头。

然后回答:您只是忘记了()

ave = Average()
ave.myinput()

您应该将类​​实例放入每个方法中

def myinput(self): ...

def lol(self, mylist):

答案 1 :(得分:1)

您的课程应该是这样的:

class Average() :
    def myinput(self):
        n=0
        mylist=[]
        #will be ended when input = -1 
        while n !='-1' :
            n=raw_input('>>>')
            if n!='-1' :
                mylist.append(n)
        print self.lol(mylist)
    def lol(self, mylist):
        try: 
            mysum=0.0
            for i in mylist :
                mysum = mysum + int(i)
            return mysum/len(mylist)
        except:
            return  'please don\'t Enter charecters just Number' 
ave = Average()
ave.myinput()

第一个参数应该是类实例本身。

答案 2 :(得分:0)

您在这里错过了方括号。

ave=average()