python报告缺少参数

sil*_*llz 1 python object self

我在一个需要5个参数的对象中有一个函数.我创建了该对象的一个​​实例并运行函数define(param1,2,3,4,5),它给了我一个缺少第五个参数的响应.

这是我的代码的一部分:

    class KeyProperties:   #Object
path = None
keytype = None
image = None
name = None
keyid = None
occupied = None

def define(self, name, path, image, keytype, keyid): #The function that is used
    self.path = path
    self.keytype = keytype
    self.image = image
    self.name = name
    self.keyid = keyid
    self.occupied = True
Run Code Online (Sandbox Code Playgroud)

我运行define()时的代码:

    key = KeyProperties
    key.define(param1,param2,param3,param4,param5)
Run Code Online (Sandbox Code Playgroud)

它给出了这个错误

TypeError:define()缺少1个必需的位置参数:'keyid'

Mos*_*oye 8

你的当前key不是KeyProperties班级本身的实例.因此define需要6个参数(包括self):

要解决此问题,请实例化该类:

key = KeyProperties()
#                  ^^
Run Code Online (Sandbox Code Playgroud)

实例方法的第一个参数是实例本身(通常写为self).实例化类会自动self为您传递,然后define可以按照您的意图获取5个参数.