python报告缺少参数

标签 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

运行 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/

相关文章:

objective-c - self.view/super.view

swift - 在调用 super.init() 之前实例化调用自身的属性

python 相当于 matlab unidrnd()

python - 在 Mac OS 10.13(High Sierra) 上导入 pygame 模块时遇到问题!

python - 对于服务器端 python 代码,是否有比 virtualenv 更好的解决方案?

java - 从对象中删除键和值

javascript - 如何销毁即将到来脚本中的先前时间?

Python - 类中的Timeit

python - 如何在 pygtk 应用程序中获取(无子级) “tabs”

php - 关于PHP对象性能的一些问题