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 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'])) if __name__ == '__main__': main()