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

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

posted @ 2016-10-31 00:20  morra  阅读(796)  评论(0编辑  收藏  举报