python变量
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
在程序设计中我们一般要求,模块的内置性要强,跟其他模块的耦合性要弱,所以一般情况下我们不使用全局变量,除非使用它了之后对程序的性能有较大的提升。