Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. class Worker: # Класс
  2. __FIO = None # Поля, __ означает, что поле - приватное
  3. __Position = None
  4. __Salary = None
  5. __YearOfHire = None
  6.  
  7. def __init__(self, fio, pos, sal, year): # Конструктор
  8. self.FIO = fio
  9. self.Position = pos
  10. self.Salary = sal
  11. self.YearOfHire = year
  12.  
  13. def __del__(self): # Деструктор
  14. print('Я разрушен. Моя жизнь кончена. Хочу умереть')
  15.  
  16. @property
  17. def FIO(self): # Геттер для ФИО
  18. return self.__FIO
  19.  
  20. @FIO.setter
  21. def FIO(self, fio): # Сеттер для ФИО
  22. self.__FIO = fio
  23.  
  24. @property
  25. def Position(self): # Геттер для Должности
  26. return self.__Position
  27.  
  28. @Position.setter
  29. def Position(self, pos): # Сеттер для Должности
  30. self.__Position = pos
  31.  
  32. @property
  33. def Salary(self): # Геттер для Зарплаты
  34. return self.__Salary
  35.  
  36. @Salary.setter
  37. def Salary(self, sal): # Сеттер для Зарплаты
  38. self.__Salary = sal
  39.  
  40. @property
  41. def YearOfHire(self): # Геттер для Года поступления
  42. return self.__YearOfHire
  43.  
  44. @YearOfHire.setter
  45. def YearOfHire(self, year): # Сеттер для Года поступления
  46. self.__YearOfHire = year
  47.  
  48. def __str__(self): # Метод для отображения объекта класса в виде строки
  49. return str(self.FIO) + ' ' + str(self.Position) + ' ' + str(self.Salary) + ' ' + str(self.YearOfHire)
  50.  
  51.  
  52. def SearchInListOfWorkers(WorkersList, Search, SearchColumn): # Метод для поиска объектов в листе по критерию
  53. result = [] # Инициализируем лист для результатов поиска
  54. for worker in WorkersList:
  55. current_attribute = getattr(worker, SearchColumn) # Находим нажный атрибут для поиска
  56. if isinstance(current_attribute, str): # Если это строка, то проверяем вхождение подстроки
  57. result.append(worker) if Search in current_attribute else None
  58. elif isinstance(current_attribute, int): # Если число, то сравниваем
  59. result.append(worker) if Search == current_attribute else None
  60. return result # Возвращаем результаты поиска
  61.  
  62.  
  63. if __name__ == '__main__': # Если запускается данный файл, то сделать:
  64. # Создаем лист объектов класса Worker
  65. Workers = [
  66. Worker('Иванов И.И.', 'Уборщик', 10000, 1999),
  67. Worker('Петров И.И.', 'Дворник', 16000, 2010),
  68. Worker('Охохонина Е.Ш.', 'Танцовщица', 60000, 2002),
  69. Worker('Гениальнов С.Х.', 'Гений', 100000, 2018),
  70. ]
  71.  
  72. # Выводим результаты поиска
  73. print(*SearchInListOfWorkers(Workers, 'Иванов', 'FIO'))
  74. print(*SearchInListOfWorkers(Workers, 'И', 'FIO'))
  75. print(*SearchInListOfWorkers(Workers, 'Танцовщица', 'Position'))
  76. print(*SearchInListOfWorkers(Workers, '100000', 'Salary'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement