(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()
Ответы
Для добавления возможности перемещения работников между офисами и проверки, что работник не записан в офисе дважды, можно внести следующие изменения в код:
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 добавлена проверка на дубликаты, чтобы работник не мог быть добавлен в офис дважды.