码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-09-01 22:16:57      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:sel   ati   int   self   code   9.png   exec   等于   mod   

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()

标签:sel   ati   int   self   code   9.png   exec   等于   mod   

原文地址:http://www.cnblogs.com/Acekr/p/7465171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!