python全栈之路:vars():__name__,__file__,__package__,__doc__ vars()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python全栈之路:vars():__name__,__file__,__package__,__doc__ vars()相关的知识,希望对你有一定的参考价值。

1、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}
‘‘‘

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

__name__:

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

      常用于在主文件调用主函数加的条件判读 if __name__ ==‘__main__‘:

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

技术分享

技术分享

 

__file__  :

      获取文件自己的路径

from lib.xx import bbbb

print(__file__)

#D:/pythonProject/test.py


print(bbbb.__file__)

#D:\\pythonProject\\lib\\xx\\bbbb.py

print(__file__)


#D:/pythonProject/test.py


import os

print(os.path.dirname(__file__))

#D:/pythonProject


print(os.path.basename(__file__))

#test.py

print(os.path.dirname(os.path.dirname(__file__)))

#D:/

  __file__的应用场景

      技术分享

 

__package__ :

         指定文件所在包路径,用.划分

           当前文件为None

           其它文件为所在包路径

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文件的注释部分

 

以上是关于python全栈之路:vars():__name__,__file__,__package__,__doc__ vars()的主要内容,如果未能解决你的问题,请参考以下文章

Python全栈之路----面向对象开发----反射

Python全栈之路——列表list(Day 04)

Python全栈之路_01

Python全栈之路----面向对象开发----封装

7Python全栈之路系列之面向对象运算符重载

4Python全栈之路系列之socketsesrver实现多并发