У меня есть два python файла Event.py и test.py. (Есть и другие, но, насколько я могу судить, только они актуальны)
Когда я пытаюсь запустить test.py для проверки класса, который я написал в Event.py, я получаю следующую ошибку:
Traceback (последний вызов был последним): файл "test.py", строка 9, в событии = событие (день, имя, дес c) TypeError: init () занимает от 1 до 3 позиционных аргументов, но было дано 4
Я знаю, что есть несколько постов, цитирующих эту же ошибку, но ответы на те, которые обычно касаются пользователя, пытающегося создать объект и дающего конструктору неправильный количество аргументов. Обычно это имеет какое-то отношение к некоторой причуде наследования, но я не использую это, насколько мне известно. Код ниже
Event.py
class Event:
def __init__(self, date, name, desc):
self.date = date
self.name = name
self.desc = desc
def listTasks(self):
for item in self.tasks:
print(self.tasks[item])
def report(self):
print(self.name)
print(self.date)
print(self.desc)
def addTask(self, tname, tdesc):
x = Task(tname, tdesc)
self.tasks.append(x)
def calcPercent(self):
total = len(self.tasks)
completed = 0
for item in self.tasks:
if item:
completed += 1
else:
completed += 0
percent = float(completed) / float(total)
percent = percent * 100
return percent
Test.py
from Event import Event
import datetime
from yamldriver import *
import calendar
day = str(datetime.date.today())
desc = 'This is a test event'
name = 'Testvent'
event = Event(day,name,desc)
event.report()
event.addTask('Task', 'This is a test task')
event.tasks[0].report()
write_yaml('./test2.yml', event)
print(event.calcPercent())
Насколько я могу судить, я настроил класс событий для принятия 3 аргументы + self, которое должно быть 4. Но когда я пытаюсь запустить тест, я получаю сообщение об ошибке, приведенное выше.
Что я делаю неправильно, заставляя python ожидать 3 аргумента, а не 4?