Предмет: Информатика, автор: hltkllf

(Python) Добавить в код возможность перемещения работников из офиса в офис и проверку что один работник не записан в офисе 2 раза.



class worker:
def init(self,name,position):
self.name=name
self.position = position

class office:
def init(self,name):
self.name = name
self.workers=[]
def add_worker(self,worker):
self.workers.append(worker)
def print_workers(self):
print("Workers in", self.name)
for worker in self.workers:
print(worker.name,"-", worker.position)
office1 = office("office1")
office2 = office("office2")

worker1=worker("John","manager")
worker2=worker("Jane","developer")
worker3=worker("Bob","designer")

office1.add_worker(worker1)
office1.add_worker(worker2)
office2.add_worker(worker3)

office1.print_workers()

Ответы

Автор ответа: usovichmax1m
0

Для добавления возможности перемещения работников между офисами и проверки, что работник не записан в офисе дважды, можно внести следующие изменения в код:

class Worker:

   def __init__(self, name, position):

       self.name = name

       self.position = position

class Office:

   def __init__(self, name):

       self.name = name

       self.workers = []

   def add_worker(self, worker):

       if worker not in self.workers:  # Проверка на дубликаты

           self.workers.append(worker)

           print(f"{worker.name} added to {self.name}")

       else:

           print(f"{worker.name} is already in {self.name}")

   def move_worker(self, worker, target_office):

       if worker in self.workers:

           self.workers.remove(worker)

           target_office.add_worker(worker)

           print(f"{worker.name} moved from {self.name} to {target_office.name}")

       else:

           print(f"{worker.name} is not in {self.name}")

   def print_workers(self):

       print("Workers in", self.name)

       for worker in self.workers:

           print(worker.name, "-", worker.position)

office1 = Office("office1")

office2 = Office("office2")

worker1 = Worker("John", "manager")

worker2 = Worker("Jane", "developer")

worker3 = Worker("Bob", "designer")

office1.add_worker(worker1)

office1.add_worker(worker2)

office2.add_worker(worker3)

office1.print_workers()

office2.print_workers()

# Перемещение работника из office1 в office2

office1.move_worker(worker1, office2)

office1.print_workers()

office2.print_workers()

Здесь добавлена функция move_worker, которая позволяет переместить работника из одного офиса в другой. Также в методе add_worker добавлена проверка на дубликаты, чтобы работник не мог быть добавлен в офис дважды.

Похожие вопросы
Предмет: Литература, автор: wwxx88
Предмет: Английский язык, автор: ivanvalik220
Предмет: Химия, автор: Аноним