attr.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. class Car:
  2. model = "BMW"
  3. engine = 1.6
  4. def drive(self):
  5. print("Let's go")
  6. class Person:
  7. name = 'Ivan'
  8. age = 30
  9. def test_method():
  10. car = Car()
  11. getattr(car, 'drive')()
  12. def teset_attr():
  13. car = Car()
  14. print(type(car))
  15. print(isinstance(car, Car))
  16. print(Person.name)
  17. print(Person.__dict__)
  18. # Наличие атрибута
  19. print(hasattr(Person, 'sex'))
  20. # Получить атрибут
  21. print(getattr(Person, 'name'))
  22. Person.name = 'Misha'
  23. print(getattr(Person, 'name'))
  24. # Динамическое создание атрибутов
  25. Person.x = 200
  26. # Получить атрибут или значение если атрибута нет
  27. print(getattr(Person, 'x', 100))
  28. # Установить атрибут
  29. setattr(Person, 'y', 300)
  30. print(getattr(Person, 'y'))
  31. # Удалить атрибут
  32. del Person.y
  33. # Удалить атрибут
  34. delattr(Person, 'x')
  35. print(Person.z)
  36. def test_attr_2():
  37. class Empty:
  38. pass
  39. my_list = [
  40. ('apple', 23),
  41. ('banana', 80),
  42. ('cherry', 13),
  43. ('date', 10),
  44. ('elderberry', 4),
  45. ('fig', 65),
  46. ('grape', 5),
  47. ('honeydew', 7),
  48. ('kiwi', 1),
  49. ('lemon', 10),
  50. ]
  51. for i in my_list:
  52. setattr(Empty, i[0], i[1])
  53. print(Empty.__dict__)
  54. # print(Empty.__dict__())
  55. def test_attr_3(cl, name: str):
  56. return name in cl.__dict__
  57. def test_attr_4():
  58. class Person:
  59. name = "John Smith"
  60. age = 30
  61. gender = "male"
  62. address = "123 Main St"
  63. phone_number = "555-555-5555"
  64. email = "johnsmith@example.com"
  65. is_employed = True
  66. names = input().split()
  67. for i in names:
  68. print(i,'-', 'YES' if hasattr(Person, i.lower()) else 'NO', sep='')
  69. def main():
  70. # teset_attr()
  71. # test_attr_2()
  72. # print(test_attr_3(Car, 'model'))
  73. # test_attr_4()
  74. test_method()
  75. if __name__ == '__main__':
  76. main()