Какая из следующих функций обеспечивает поддержку отражения на Python? ✨
В Python поддерживается отражение следующими функциями:
getattr
- возвращает атрибут объекта по его имени;hasattr
- проверяет, имеет ли объект атрибут с заданным именем;setattr
- задает значение атрибута объекта или создает новый атрибут;delattr
- удаляет атрибут объекта;inspect
- предоставляет информацию о объектах программы, включая атрибуты, параметры и другие свойства;
# Примеры использования этих функций:
class MyClass:
def __init__(self):
self.x = 10
obj = MyClass()
# Пример использования функции getattr()
print(getattr(obj, 'x')) # Вывод: 10
# Пример использования функции setattr()
setattr(obj, 'y', 20)
print(obj.y) # Вывод: 20
# Пример использования функции delattr()
delattr(obj, 'x')
print(hasattr(obj, 'x')) # Вывод: False
# Пример использования модуля inspect
import inspect
def my_function():
pass
print(inspect.getmembers(my_function)) # Вывод информации о функции
Детальный ответ
Какая из следующих функций обеспечивает поддержку отражения в Python?
В Python есть несколько функций, которые обеспечивают поддержку отражения. Отражение - это способность программы анализировать, модифицировать и создавать объекты во время выполнения. Отражение позволяет получать информацию о классах и их атрибутах, вызывать методы динамически и манипулировать объектами без явного указания имени.
Итак, какая из доступных функций предоставляет поддержку отражения в Python? Ответ на этот вопрос - функция getattr().
Функция getattr() позволяет получить значение атрибута объекта по его имени. Синтаксис функции выглядит следующим образом:
getattr(object, name[, default])
Здесь object - это объект, у которого нужно получить атрибут, name - это имя атрибута, а default (необязательный аргумент) - это значение, которое возвращается, если атрибут не найден.
Пример использования функции getattr():
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("John", 25)
name_attr = getattr(person, "name")
print(name_attr) # Выводит "John"
age_attr = getattr(person, "age")
print(age_attr) # Выводит 25
city_attr = getattr(person, "city", "Unknown")
print(city_attr) # Выводит "Unknown", так как атрибут "city" не существует
Как видите, с помощью функции getattr() мы можем получать значения атрибутов объекта даже без знания их имен заранее.
Итак, функция getattr() обеспечивает поддержку отражения в Python, позволяя получать значение атрибута объекта по его имени.