2016-07-12 2 views
1

У меня есть функция в объекте, для которого требуется 5 параметров. Я создаю экземпляр этого объекта и запускаю функцию, определяю (param1,2,3,4,5), и это дает мне ответ на отсутствие пятого параметра.python reports missing parameter

Вот часть моего кода:

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 

код при запуске определить():

key = KeyProperties 
    key.define(param1,param2,param3,param4,param5) 

и выдает эту ошибку

TypeError: define() missing 1 required positional argument: 'keyid'

ответ

8

Ваш текущий key не является экземпляром KeyProperties, но сам класс. Следовательно define потребует 6 параметров (которые включают self):

Чтобы это исправить, экземпляр класса:

key = KeyProperties() 
#     ^^ 

Первый аргумент метода экземпляра является сам экземпляр (обычно записывается в виде self). Создание экземпляра класса автоматически передает self, а затем define теперь может принимать 5 параметров по вашему желанию.

 Смежные вопросы

  • Нет связанных вопросов^_^