python ожидает меньше аргументов, чем я для - PullRequest
0 голосов
/ 19 марта 2020

У меня есть два 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...