【问题标题】:how i can call this class?我怎么能叫这个类?
【发布时间】:2018-07-18 10:44:43
【问题描述】:
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() 必须用
调用 平均实例作为第一个参数(什么都没有)"""

【问题讨论】:

  • python 版本?

标签: python function class average


【解决方案1】:

首先你应该重命名你的类,Python 命名约定非常强大,类应该总是以大写字母开头。

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

ave = Average()
ave.myinput()

你应该把类实例放在每个方法中:

def myinput(self): ...

def lol(self, mylist):

【讨论】:

  • class Average : ave=Average() av​​e.myinput() """$ winpty python test3.py Traceback(最近一次调用最后):文件“test3.py”,第 20 行,在 ave.myinput() TypeError: myinput() 不接受任何参数(1 个给定)“””我更改了类名,我把 ()
  • 奇怪,它在我的机器上工作,你刷新你的ave 对象了吗?如果您更新课程,您需要以任何一种方式重新创建它,它将保持与以前相同
【解决方案2】:

你的班级应该是这样的:

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

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

【讨论】:

    【解决方案3】:

    你在这里错过了括号。

    ave=average()
    

    【讨论】:

    • ave=average() av​​e.myinput() """$ winpty python test3.py Traceback(最近一次调用最后):文件“test3.py”,第 20 行,在 ave .myinput() TypeError: myinput() 不接受任何参数(1 个给定)"""
    • 您的函数缺少self 参数。您需要将其声明为def myinput(self):
    猜你喜欢
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多