Функция vars() в Python
vars()является встроенной функцией в Python для возврата объекта__dict__атрибуты.
vars()Возвращает словарь, содержащий все записываемые атрибуты объекта. Для объектов, у которых отсутствует__dict____dict__, возникает исключение TypeError.
Определения слов: vars 是 variables(变量)的缩写。
Базовый синтаксис и параметры
Формат синтаксиса
vars(object)
Описание параметра
- Параметр object:
- Тип: любой объект
- Описание: объект, атрибуты которого необходимо получить.
Описание функций
- Возвращаемое значение: возвращает
__dict__словарь __dict__ объекта. - Примечание: при вызове без аргументов это эквивалентно locals()
locals()。
Примеры
Пример 1: Просмотр атрибутов объекта
Пример
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Tom", 20)
# Просмотр __dict__ объекта
print(vars(p))
# Вывод: {'name': 'Tom', 'age': 20}
# Доступ к словарю
print(vars(p)["name"]) # Вывод: Tom
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Tom", 20)
# Просмотр __dict__ объекта
print(vars(p))
# Вывод: {'name': 'Tom', 'age': 20}
# Доступ к словарю
print(vars(p)["name"]) # Вывод: Tom
Ожидаемый вывод:
{'name': 'Tom', 'age': 20}
Tom
Анализ кода:
- vars() возвращает словарь атрибутов экземпляра объекта.
- К атрибутам можно получить доступ напрямую через словарь.
Пример 2: Модуль и класс __dict__
Пример
# __dict__ модуля
import os
print(len(vars(os))) # Вывод: количество атрибутов модуля os
# __dict__ класса (исключая атрибуты экземпляра)
class MyClass:
class_attr = 100
def __init__(self):
self.instance_attr = 200
print(vars(MyClass))
# Вывод: {'__module__': '__main__', 'class_attr': 100, '__init__': ...}
import os
print(len(vars(os))) # Вывод: количество атрибутов модуля os
# __dict__ класса (исключая атрибуты экземпляра)
class MyClass:
class_attr = 100
def __init__(self):
self.instance_attr = 200
print(vars(MyClass))
# Вывод: {'__module__': '__main__', 'class_attr': 100, '__init__': ...}
Вывод:
vars() очень помогает понять структуру объекта.
vars()Это часто используется для отладки и динамического доступа к атрибутам.
Другие расширения
Встроенные функции Python3