1. 系统变量
(1) '__doc__'
文件注释,在py中代码最上方""" """里面一般写注释,系统会把文件注释自动存放在'__doc__'这个全局变量里。
"""
我是注释
"""
print(__doc__) #我是注释
(2). '__file__'
存放所在文件的文件路径
import os
print(os.path.dirname(__file__)) #/Users/morra/Desktop/python/lib
print(os.path.basename(__file__)) #index.py
tmp = os.path.dirname(__file__)
print(os.path.dirname(tmp)) #/Users/morra/Desktop/python/
print(os.path.basename(tmp)) #lib,返回index.py的上一级目录
(3). '__package__'
当前.py文件所在的文件夹,用.划分,但是当前文件的值是None
from lib import index
print(__package__) #None
print(index.__package__) #lib
(4). '__cached__'
缓存,是一个.pyc的字节码文件
(5). '__name__'
from lib import index
print(__name__) #__main__
print(index.__name__) #lib.index
主文件在调用主函数之前,必须加下列判断:
if __name__ == '__main__':
exec ()
(6). '__builtins__'
存放内置函数
for i in dir(__builtins__): #查看系统内置函数和变量
print(i)
(7). python下划线总结
总结一下Python中下划线的特殊用法:
_xxx:不用'from module import *'导入
__xxx__:系统定义的名字
__xxx:类中的私有变量名
2. 变量作用域
当全局变量和局部变量同名的时候,遵循“内层屏蔽外层”的原则,因此此处只有局部变量生效。
def f(x):
global a
print(a)
a = 5
print(a + x)
a = 3
f(8)
print(a)
OUTPUT:
3
13
5