Встроенный Python vars () Функция возвращает __dict__ Атрибут объекта – словарь, содержащий изменяемые атрибуты объекта. Без аргумента он возвращает локальный стол символа, похожий на Местные жители () Отказ
class Car:
def __init__(self):
self.speed = 100
self.brand = 'porsche'
porsche = Car()
print(vars(porsche))
# {'speed': 100, 'brand': 'porsche'}Встроенный Python vars () Функция возвращает словарь Имя: значение сопоставления всех названий, определенных в локальном объеме или объеме опционального объект аргумент и их связанные значения.
- При использовании без аргумента
vars ()возвращает так же, какМестные жители ()Это возвращает СловарьИмя -> ОбъектСопоставления имена, определенные в текущем локальном объеме, и объекты, являющиеся их связанными значениями. - При использовании с аргументом объекта
vars (объект)возвращает так же, какобъект .__ Dict __ ()Это возвращает СловарьИмя -> ОбъектСопоставления пиремных имен, определенные в объеме объекта объекта, и объекты, являющиеся их связанными значениями.
Узнайте пример! Вот пример того, как использовать vars () Встроенная функция Отказ
Видео vars ()
vars () без аргумента: синтаксис и пример
Syntax: vars() # Returns dictionary of "name --> value" mappings like locals()
| Аргументы | – | – |
| Возвращаемое значение | обдумывать | Словарь отображений изменных имен, определенных в локальном пространстве имен, и объекты, которые они относятся. |
При использовании без аргумента vars () возвращает так же, как Местные жители () Это возвращает Словарь Имя -> Объект Сопоставления имена, определенные в текущем локальном объеме, и объекты, являющиеся их связанными значениями.
>>> vars()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'C:\\Users\\...\\code.py', 'find_path': , 'G': [[1, 1, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 1, 1, 1, 0], [1, 0, 0, 1, 1]]}
>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'C:\\Users\\...\\code.py', 'find_path': , 'G': [[1, 1, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 1, 1, 1, 0], [1, 0, 0, 1, 1]]}
>>> vars() == locals()
True vars () с аргументом: синтаксис и пример
Syntax: vars(object) # Returns same as object.__dict__()
| Аргументы | объект | Объект, для которого следует извлекаться атрибут на имя объектов |
| Возвращаемое значение | обдумывать | Словарь отображений из имени атрибутов, определенных в пространстве имен объекта, и объекты, которые они относятся. |
При использовании с аргументом объекта vars (объект) возвращает так же, как объект .__ Dict __ () Это возвращает Словарь Имя -> Объект Сопоставления пиремных имен, определенные в объеме объекта объекта, и объекты, являющиеся их связанными значениями.
>>> def f():
x = 2
>>> vars(f)
{}
>>> f.y = 42
>>> vars(f)
{'y': 42}Как только вы назначите новый атрибут y к объекту функции, он становится доступным в словаре, возвращенном vars () функция. Тем не менее, локальная переменная х не атрибут F Так что это не часть возвращенного словаря.
[Как исправить] Типеррера: VARS () Аргумент должен иметь __dict__ атрибут
Если вы пройдете аргумент в vars () Функция, которая не имеет __dict __ () Функция, Python поднимает Типеррор Отказ Это означает, что рассматриваемый объект не имеет никаких атрибутов, таких как целое число, поплавок, список и т. Д.
>>> vars(42) Traceback (most recent call last): File "", line 1, in vars(42) TypeError: vars() argument must have __dict__ attribute
Вы можете исправить это только передающими аргументы, которые перезаписали __dict__ Способ, такой как функция или пользовательский объект:
>>> def f():
return 42
>>> vars(f)
{}
>>> f.val = 'YES'
>>> vars(f)
{'val': 'YES'}Резюме
Встроенный Python vars () Функция возвращает словарь Имя: значение сопоставления всех названий, определенных в локальном объеме или объеме опционального объект аргумент и их связанные значения.
При использовании без аргумента vars () возвращает так же, как Местные жители () Это возвращает Словарь Имя -> Объект Сопоставления имена, определенные в текущем локальном объеме, и объекты, являющиеся их связанными значениями.
>>> vars()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'C:\\Users\\...\\code.py', 'find_path': , 'G': [[1, 1, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 1, 1, 1, 0], [1, 0, 0, 1, 1]]}
>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'C:\\Users\\...\\code.py', 'find_path': , 'G': [[1, 1, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 1, 1, 1, 0], [1, 0, 0, 1, 1]]}
>>> vars() == locals()
True При использовании с аргументом объекта vars (объект) возвращает так же, как объект .__ Dict __ () Это возвращает Словарь Имя -> Объект Сопоставления пиремных имен, определенные в объеме объекта объекта, и объекты, являющиеся их связанными значениями.
>>> def f():
x = 2
>>> vars(f)
{}
>>> f.y = 42
>>> vars(f)
{'y': 42}Я надеюсь, что вам понравилось статью! Чтобы улучшить свое образование Python, вы можете присоединиться к популярной академии по электронной почте Free Finxter:
Хотите увеличить свои навыки Python в веселой и легкой потребности? Рассмотрим следующие ресурсы и стать магистральным кодером!
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.