Есть ли стандартный метод такому коду?

Рейтинг: 0Ответов: 0Опубликовано: 11.04.2023

Знаю, что есть .__ getattribute__(), но он ругается если нет поля у объекта.

Решил реализовать так:

def my_getattribute(obj, key):
    return obj.__getattribute__(key) if key in obj.__dir__() else None


class SampleClass():
    id = '123'


s = int(10)
s2 = SampleClass()

print(my_getattribute(s, 'id'))  #None
print(my_getattribute(s2, 'id')) #123

Сам вопрос: есть ли более оптимальный способ или стандартный метод (на подобии .get() у словаря), а то тут получается, что я 2 раза пробегаю по полям объекта

Ответы

Ответов пока нет.