python dir()和vars()的区别

本文详细介绍了Python内置函数dir()与vars()的区别及用法。通过具体实例展示了这两个函数如何分别打印对象的属性及其值,并解释了它们在不同上下文中的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dir():默认打印当前模块的所有属性,如果传一个对象参数则打印当前对象的属性
vars():默认打印当前模块的所有属性,如果传一个对象参数则打印当前对象的属性
vars():函数以字典形式返回参数中每个成员的当前值,如果vars函数没有带参数,那么它会返回包含当前局部命名空间中所有成员的当前值的一个字典。

help(vars)
Help on built-in function vars in module builtin:
vars(…)
vars([object]) -> dictionary
Without arguments, equivalent to locals().
With an argument, equivalent to object.dict.

dir()和vars()的区别就是:dir()只打印属性,vars()则打印属性与属性的值。

view plain copy
a='abcdefg'  
class B():  
    c='djfj'  

print dir()  
print vars()  
print dir(B)  
print vars(B)  

结果:
[‘B’, ‘builtins‘, ‘doc‘, ‘file‘, ‘name‘, ‘package‘, ‘a’]
{‘a’: ‘abcdefg’, ‘B’:

>>> class C(object):  
        f=2  


>>> dir(C)  
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'f']  
>>> vars(C)  
dict_proxy({'__dict__': <attribute '__dict__' of 'C' objects>, '__module__': '__main__', '__weakref__': <attribute '__weakref__' of 'C' objects>, '__doc__': None, 'f': 2})  
>>> C.__dict__  
dict_proxy({'__dict__': <attribute '__dict__' of 'C' objects>, '__module__': '__main__', '__weakref__': <attribute '__weakref__' of 'C' objects>, '__doc__': None, 'f': 2})  
>>> c=C()  
>>> dir(c)  
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'f']  
>>> vars(c)  
{}  
>>> c.__dict__  
{}  
>>>   

(完)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值