zoukankan      html  css  js  c++  java
  • Python

    直接上代码

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    这是注释__doc__会打印这部分内容
    """
    
    # 以字典的方式返回所有内置变量
    print(vars())
    
    # 返回当前文件的路径
    print(__file__)
    
    # 获取导入该文件的路径,当前文件内输出会返回None
    print(__package__)
    
    # 最重要的__name__获取导入文件的路径加文件名称
    print(__name__)

    执行结果

    {'__name__': '__main__', '__doc__': '
    这是注释__doc__会打印这部分内容
    ', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001F7A6E6C438>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'F:/SQ_Python_Easy/D10_面向对象/内置变量1.py', '__cached__': None}
    F:/SQ_Python_Easy/D10_面向对象/内置变量1.py
    None
    __main__

    知识点一:vars()

    Python内置函数,可以返回当前模块的所有内置变量

    知识点二:__file__获取路径

    所在模块:os

    变量作用:指向当前文件

    当前文件的完整路径: os.path.realpath(__file__) 

    当前文件所属目录: os.path.dirname(os.path.realpath(__file__)) 

    当前文件所属目录的上级目录: os.path.dirname(os.path.dirname(os.path.realpath(__file__))) 

    知识点三:__package__

    """
    内置变量1.py
    """
    
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    print(__package__) # 输出None
    """
    内置变量2.py
    """
    
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from test import 内置变量1.py
    
    # 会输出 test ;输出导入的文件的目录

    知识点四:__name__(重点)

    Python系统变量

    场景一: if __name__ == '__main__': 

    最常用的场景:当你运行当前文件时, __name__ 输出就是 __main__ ,所以可以加个 if 判断来执行特定代码

    场景二:其他文件import

     内置变量1.py 文件

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    print(__name__)
    if __name__ == '__main__':
        print("main")

    运行 内置变量1.py 文件

    __main__
    main

     内置变量2.py 文件

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from test import 内置变量1.py

    运行 内置变量2.py 文件

    D10_面向对象.内置变量1

    可以看到,运行内置变量2.py文件时,它因为导入了内置变量1.py,输出__name__的值则是内置变量1.py在工程目录下的路径

  • 相关阅读:
    批量刷新远程物化视图的方法(备用)
    Oracle 11g中CTE应用示例
    PL/SQL DEVELOPER中查询结果复制出来中文乱码的解决方案
    RHEL5.5 64位下安装Oracle 11g 64位安装前置条件的两种方法
    不良言论屏蔽方案探讨——自说自话方案
    AWWWB 网站克隆器 v2.0发布
    OneNote中到底能放多少种东西?
    Visual Studio 2010 旗舰版 安装问题小记
    WPF命中测试示例(一)——坐标点命中测试
    网页内嵌Windows Media Player播放器的多文件播放方法
  • 原文地址:https://www.cnblogs.com/poloyy/p/12507104.html
Copyright © 2011-2022 走看看