Предмет: Информатика, автор: 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
1

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

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, new_office):

       if worker in self.workers:

           self.workers.remove(worker)

           new_office.add_worker(worker)

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

       else:

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

   def print_workers(self):

       print(f"Workers in {self.name}:")

       for worker in self.workers:

           print(f"{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()

# Moving a worker

office1.move_worker(worker1, office2)

office1.print_workers()

office2.print_workers()

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


hltkllf: Спасибо
Похожие вопросы
Предмет: Окружающий мир, автор: nastyateas
Предмет: Алгебра, автор: jopa1538