Ошибка типа: Technician.__init__() отсутствует 1 обязательный позиционный аргумент: «специализация»Python

Программы на Python
Ответить
Anonymous
 Ошибка типа: Technician.__init__() отсутствует 1 обязательный позиционный аргумент: «специализация»

Сообщение Anonymous »

Я пытаюсь сделать домашнее задание по объектно-ориентированному программированию, но получаю странную ошибку
пробовал перезапустить vscode или изменить имена
Цель: разработать систему управления сотрудниками система, демонстрирующая множественное наследование, инкапсуляцию и полиморфизм в Python. Система должна управлять различными видами деятельности, в том числе менеджерами и техническими специалистами, и предоставлять возможности для расширения и добавления новых ролей.

Код: Выделить всё

class Employee: #parent class
def __init__(self, name, id):
self.name = name
self.id = id

class Manager(Employee):
def __init__(self, name, id, department):
super().__init__(name, id)
self.department = department

class Technician(Employee):
def __init__(self, name, id, specialization):
super().__init__(name, id)
self.specialization = specialization

class TechManager(Manager, Technician):
def __init__(self, name, id, department, specialization):
Manager.__init__(self, name, id, department)
Technician.__init__(self, name, id, specialization)
self.subordinates = []

def add_employee(self, employee):
self.subordinates.append(employee)

def get_team_info(self):
subordinates_info = [employee.get_info() for employee in self.team]
print(f"Список подчиненных:\n" + "\n".join(subordinates_info))

employee1 = Employee("Сергей", 1)
manager1 = Manager("Денис", 2, "ит")
technician1 = Technician("Петр", 3, "ии")
techManager1 = TechManager("Андрей", 4, "ит", "ии")
Я получаю это сообщение об ошибке

Код: Выделить всё

PS C:\Users\EvoTechPC> & C:/Users/EvoTechPC/AppData/Local/Microsoft/WindowsApps/python3.11.exe c:/Users/EvoTechPC/Desktop/учеба/ввит/lab7/Main.py
Traceback (most recent call last):
File "c:\Users\EvoTechPC\Desktop\учеба\ввит\lab7\Main.py", line 41, in 
techManager1 = TechManager("Андрей", 4, "ит", "ии")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\EvoTechPC\Desktop\учеба\ввит\lab7\Main.py", line 27, in __init__
Manager.__init__(self, name, id, department)  # Инициализация Manager с нужными аргументами
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\EvoTechPC\Desktop\учеба\ввит\lab7\Main.py", line 11, in __init__
super().__init__(name, id)
TypeError: Technician.__init__() missing 1 required positional argument: 'specialization'
Задача:
  • Создать класс «Сотрудник» с общими атрибутами, такими как имя (имя), идентификатор ( идентификационный номер) и такие методы, как get_info(), которые возвращают базовую информацию о сотруднике.
  • Создайте класс Manager с традиционными атрибутами, такими как отдел ( отдел) и такие методы, как Manage_project(), которые символизируют управление проектами.
  • Создайте класс Technician с учетом таких атрибутов, как специализация (специализация) и таких методов, как Perform_maintenance(), которые означают выполнение обслуживания.

    Создайте класс TechManager, который станет не только техническим специалистом, но и менеджером. Этот класс должен сочетать в себе навыки управления и технические навыки, например, иметь методы для управления проектами и выполнения обслуживания.
  • Добавьте метод add_employee(), который позволяет администратору TechManager составлять список подчиненных.
  • Реализуйте метод get_team_info(), который отображает информацию обо всех подчиненных сотрудниках.
Если кто сможет помогите, буду очень благодарен

Подробнее здесь: https://stackoverflow.com/questions/792 ... ent-specia
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»