introspection.py 1009 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. def get_info_about_object(obj):
  2. print(dir(obj))
  3. print(f'Всего у объекта {len(dir(obj))} атрибутов и методов')
  4. def check_exist_attrs(obj, lst):
  5. 'Возвращает словарь со статусом атрибутов из списка лист у obj'
  6. return {x:hasattr(obj, x) for x in lst}
  7. def create_attrs(obj, lst):
  8. for data in lst:
  9. setattr(obj, data[0], data[1])
  10. def my_test_function():
  11. pass
  12. def print_goods(lst):
  13. pass
  14. def main():
  15. # get_info_about_object(my_test_function)
  16. # print(hasattr(my_test_function, '__code__'))
  17. # print_goods.is_working = False
  18. # print_goods.status = 'Not ready'
  19. # print(check_exist_attrs(print_goods, ['is_working', 'status', 'time', 'speed']))
  20. create_attrs(print_goods, [('is_working', False), ('days', 10), ('status', 'Not ready')])
  21. print(check_exist_attrs(print_goods, ['sort', 'is_working', 'days', 'status', 'upper']))
  22. if __name__ == '__main__':
  23. main()