模块中的特殊变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模块中的特殊变量相关的知识,希望对你有一定的参考价值。
模块中特殊的变量
当我们导入模块的时候,模块已经为我们创建一些内置变量,当我们导入模块后直接调用。
例如:
print(vars(modulename) 打印出模块内置的变量
这里有几个特殊的变量。
1 __doc__ 获取模块注释
a.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
注释 注意:三引号代表的是注释,注释一般都会写代码实现的功能。
"""
def func():
print(函数)
调用模块a.py后,获取注释,相当于查看这个模块的功能。
import a.py
print(__doc__)
输出:
注释
2 __cached__ :模块缓存,指定pyc字节码路径
3 __file__:当前模块的路径
os.path.abspath(__file__):当前模块的绝对路径
os.path.dirname(os.path.abspath(__file__)):当前模块的上一级目录
例如:
import py2
print(py2.__doc__) #获取py2的注释
print(__file__) #获取py2的路径,当前路径
import os
import sys
os.path.abspath(__file__)
print(os.path.abspath(__file__)) #取当前模块的绝对路径
#os.path.dirname() #上一级目录
#把当前模块,以及上一级目录,上上一级目录添加到系统路径中。这样当我们执行这个模块的时候,始终能找到。
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
4 __package__:可以获取导入模块所属的包
例如:
from pk1 import py2
print(py2.__package__) #打印py2所属的目录pk1
5 __name__ == "__main__":当我们手动执行函数的时候,才会满足这个条件。
def run():
print(123)
if __name__ == "__main__": #当我们执行这个脚本的时候才满足这个条件,即__name__ == “__main__”
run() #所以只有当我们执行这个文件的时候,才会执行run().
# 如果我们在别的模块中导入此模块的话则不会执行run(),一般在主函数中写入,防止被导入。
以上是关于模块中的特殊变量的主要内容,如果未能解决你的问题,请参考以下文章