def get_info_about_object(obj): print(dir(obj)) print(f'Всего у объекта {len(dir(obj))} атрибутов и методов') def check_exist_attrs(obj, lst): 'Возвращает словарь со статусом атрибутов из списка лист у obj' return {x:hasattr(obj, x) for x in lst} def create_attrs(obj, lst): for data in lst: setattr(obj, data[0], data[1]) def my_test_function(): pass def print_goods(lst): pass def count_strings(*args): str_count = 0 for value in args: if isinstance(value, str): str_count += 1 return str_count def find_keys(**kwargs): lst = [] for name, value in kwargs.items(): if isinstance(value, (list, tuple)): lst.append(name) return sorted(lst, key=str.lower) def main(): # get_info_about_object(my_test_function) # print(hasattr(my_test_function, '__code__')) # print_goods.is_working = False # print_goods.status = 'Not ready' # print(check_exist_attrs(print_goods, ['is_working', 'status', 'time', 'speed'])) # create_attrs(print_goods, [('is_working', False), ('days', 10), ('status', 'Not ready')]) # print(check_exist_attrs(print_goods, ['sort', 'is_working', 'days', 'status', 'upper'])) # print(count_strings(1, 2, 'hello', True, 't')) print(find_keys(At=[4], awaited=(3,), aDobe=[5])) if __name__ == '__main__': main()