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()的主要内容,如果未能解决你的问题,请参考以下文章