我在一个需要 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
运行 define() 时的代码:
key = KeyProperties
key.define(param1,param2,param3,param4,param5)
它给出了这个错误
TypeError: define() missing 1 required positional argument: 'keyid'
最佳答案
您当前的 key
不是 KeyProperties
的实例,而是类本身。因此 define
需要 6 个参数(包括 self
):
要解决这个问题,请实例化该类:
key = KeyProperties()
# ^^
实例方法的第一个参数是实例本身(通常写成self
)。实例化类会自动为您传递 self
,然后 define
现在可以按照您的意愿采用 5 个参数。
关于python报告缺少参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38331364/