Функция vars
в Python используется для возвращения атрибутов объекта в виде словаря. Если объект не передан, vars
возвращает словарь локальных переменных в текущей области видимости.
Содержание
- Синтаксис
- Параметры
- Возвращаемое значение
- Примеры использования
- Пример 1: Использование vars без параметров
- Пример 2: Использование vars с объектом
- Пример 3: Изменение атрибутов объекта с помощью vars
- Пример 4: Динамическое добавление атрибутов объекту
- Пример 5: Получение и изменение глобальных переменных
- Важные замечания
Синтаксис
vars([object])
Параметры
object
(необязательный): Объект, атрибуты которого должны быть возвращены. Если объект не указан, возвращается словарь локальных переменных.
Возвращаемое значение
Функция vars
возвращает словарь атрибутов объекта. Если объект не указан, возвращается словарь локальных переменных.
Примеры использования
Пример 1: Использование vars
без параметров
def example_function():
local_var1 = "hello"
local_var2 = 42
print(vars())
example_function()
# Вывод: {'local_var1': 'hello', 'local_var2': 42}
Пример 2: Использование vars
с объектом
class Example:
def __init__(self, a, b):
self.a = a
self.b = b
example_instance = Example(10, 20)
print(vars(example_instance))
# Вывод: {'a': 10, 'b': 20}
Пример 3: Изменение атрибутов объекта с помощью vars
class Example:
def __init__(self, a, b):
self.a = a
self.b = b
example_instance = Example(10, 20)
attributes = vars(example_instance)
attributes['a'] = 30
print(example_instance.a)
# Вывод: 30
Пример 4: Динамическое добавление атрибутов объекту
class DynamicAttributes:
pass
obj = DynamicAttributes()
attributes = vars(obj)
attributes['new_attr'] = "I am new!"
print(obj.new_attr)
# Вывод: I am new!
Пример 5: Получение и изменение глобальных переменных
global_var = "I am global"
def modify_globals():
g = globals()
g['global_var'] = "I am modified"
print(global_var)
modify_globals()
# Вывод: I am modified
Важные замечания
- Локальные переменные: При вызове без параметров,
vars
возвращает словарь локальных переменных текущей области видимости. Это полезно для отладки и анализа текущего состояния программы. - Изменяемость: Словарь, возвращаемый
vars
, является изменяемым. Это позволяет динамически изменять атрибуты объекта или локальные переменные. - Отсутствие объекта: Если переданный объект не имеет атрибута
__dict__
, будет вызвано исключениеTypeError
.