introspection.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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 count_strings(*args):
  15. str_count = 0
  16. for value in args:
  17. if isinstance(value, str):
  18. str_count += 1
  19. return str_count
  20. def find_keys(**kwargs):
  21. lst = []
  22. for name, value in kwargs.items():
  23. if isinstance(value, (list, tuple)):
  24. lst.append(name)
  25. return sorted(lst, key=str.lower)
  26. def main():
  27. # get_info_about_object(my_test_function)
  28. # print(hasattr(my_test_function, '__code__'))
  29. # print_goods.is_working = False
  30. # print_goods.status = 'Not ready'
  31. # print(check_exist_attrs(print_goods, ['is_working', 'status', 'time', 'speed']))
  32. # create_attrs(print_goods, [('is_working', False), ('days', 10), ('status', 'Not ready')])
  33. # print(check_exist_attrs(print_goods, ['sort', 'is_working', 'days', 'status', 'upper']))
  34. # print(count_strings(1, 2, 'hello', True, 't'))
  35. print(find_keys(At=[4], awaited=(3,), aDobe=[5]))
  36. if __name__ == '__main__':
  37. main()