9.7. Idiom Vars
9.7.1. SetUp
>>> class User:
... def __init__(self, firstname, lastname):
... self.firstname = firstname
... self.lastname = lastname
...
... def login(self):
... return 'logged-in'
...
... def logout(self):
... return 'logged-out'
9.7.2. Class
>>> vars(User)
mappingproxy({
'__module__': '__main__',
'__firstlineno__': 1,
'__init__': <function User.__init__ at 0x...>,
'login': <function User.login at 0x...>,
'logout': <function User.logout at 0x...>,
'__static_attributes__': ('firstname', 'lastname'),
'__dict__': <attribute '__dict__' of 'User' objects>,
'__weakref__': <attribute '__weakref__' of 'User' objects>,
'__doc__': None})
9.7.3. Instance
>>> alice = User('Alice', 'Apricot')
>>>
>>> vars(alice)
{'firstname': 'Alice', 'lastname': 'Apricot'}
9.7.4. Vars vs __dict__
The same
Function
vars()
use__dict__
for the resultUsing
vars()
is preferred
>>> alice = User('Alice', 'Apricot')
>>>
>>> vars(alice)
{'firstname': 'Alice', 'lastname': 'Apricot'}
>>>
>>> alice.__dict__
{'firstname': 'Alice', 'lastname': 'Apricot'}
9.7.5. Usage
keys
values
>>> keys = list(vars(alice).keys())
>>> values = list(vars(alice).values())
>>>
>>> print(keys)
['firstname', 'lastname']
>>>
>>> print(values)
['Alice', 'Apricot']