首页 > 代码库 > 23.vars():__name__,__file__,__package__,__doc__

23.vars():__name__,__file__,__package__,__doc__

vars()

vars():返回对象object的属性及其值的字典关系表

class Foo:
    a = 1

    def __init__(self):
        self.name = ‘wuwen‘
        self.gender = "male"
        self.age = 23


foo = Foo()
print(vars())
print(vars(Foo))
print(vars(foo))
‘‘‘
{‘__name__‘: ‘__main__‘, ‘__doc__‘: None, ‘__package__‘: None, ‘__loader__‘: <_frozen_importlib_external.SourceFileLoader object at 0x005B84D0>, ‘__spec__‘: None, ‘__annotations__‘: {}, ‘__builtins__‘: <module ‘builtins‘ (built-in)>, ‘__file__‘: ‘D:/pythonProject/2.py‘, ‘__cached__‘: None, ‘Foo‘: <class ‘__main__.Foo‘>, ‘foo‘: <__main__.Foo object at 0x02141410>}
{‘__module__‘: ‘__main__‘, ‘a‘: 1, ‘__init__‘: <function Foo.__init__ at 0x02144588>, ‘__dict__‘: <attribute ‘__dict__‘ of ‘Foo‘ objects>, ‘__weakref__‘: <attribute ‘__weakref__‘ of ‘Foo‘ objects>, ‘__doc__‘: None}
{‘name‘: ‘wuwen‘, ‘gender‘: ‘male‘, ‘age‘: 23}
‘‘‘

  

 当vars()参数为空的时候,我们可以认为它返回的是当前.py文件的全局变量的字典关系表,其中有几个尤为重要

__name__:

      在主文件中值等于__main__,其他时候,等于模块名

      例1:在程序入口文件中,正常执行了execute函数,通过导入模块的方法并不能执行该函数

                  技术分享

      技术分享

 

__file__  :

      获取文件自己的路径

from lib.xx import bbbb

print(__file__)
print(bbbb.__file__)
‘‘‘
D:/pythonProject/test.py
D:\pythonProject\lib\xx\bbbb.py
‘‘‘

  

__package__ :

         当前.py文件所在的文件夹路径,用.划分

from lib.xx import bbbb

print(__package__)
print(bbbb.__package__)
‘‘‘
None
lib.xx
‘‘‘

  

__doc__   :

         获取py文件的注释

from lib.xx import bbbb

print(__doc__)
print(bbbb.__doc__)
‘‘‘
    这里是当前文件的注释部分
    这里是当前文件的注释部分
    这里是当前文件的注释部分
    这里是当前文件的注释部分


    这里是bbbb文件的注释部分
    这里是bbbb文件的注释部分
    这里是bbbb文件的注释部分
    这里是bbbb文件的注释部分
‘‘‘

  

 

23.vars():__name__,__file__,__package__,__doc__