zoukankan      html  css  js  c++  java
  • 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:pythonProjectlibxxbbb.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文件的注释部分
  • 相关阅读:
    [C++] 变量
    [C++] 算术类型
    [C++] 回调函数(转)
    [国嵌攻略][095][脚本编程技术]
    [国嵌攻略][094][守护进程设计]
    [国嵌攻略][093][并发服务器设计]
    [国嵌攻略][092][UDP网络程序设计]
    [国嵌攻略][091][TCP网络程序设计]
    [国嵌攻略][090][linux网络编程模型]
    [国嵌攻略][089][网络协议分析]
  • 原文地址:https://www.cnblogs.com/Acekr/p/7465171.html
Copyright © 2011-2022 走看看