Python自己就内置了不少很是有用的模块,只要安装完毕,这些模块就能够马上使用
Python模块的标准文件模板
第一行到import语句以前是标准的模板,固然也能够所有删掉不写,可是,按标准办事确定没错
import开始是真正的代码部分python
#!/usr/bin/env python3 #让这个hello.py文件直接在Unix/Linux/Mac上运行 # -*- coding: utf-8 -*- #表示.py文件自己使用标准UTF-8编码,就是告诉解释器请使用UTF-8编码执行文件 ' a test module ' #表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释 __author__ = 'Michael Liao' #使用__author__变量把做者写进去,这样当你公开源代码后别人就能够瞻仰你的大名 #模块定义的文档注释也能够用特殊变量__doc__访问 import sys #表示导入sys模块,代码里sys就是一个变量,该变量指向该模块,利用sys这个变量,就能够访问sys模块的全部功能 def test(): args = sys.argv #sys模块有一个argv变量,用list存储了命令行的全部参数 if len(args)==1: print('Hello, world!') elif len(args)==2: print('Hello, %s!' % args[1]) else: print('Too many arguments!') #在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__置为__main__,而若是在其余地方导入该hello模块时,if判断将失败 #所以,这种if测试可让一个模块经过命令行运行时执行一些额外的代码,最多见的就是运行测试 if __name__=='__main__': test() #里面能够写一些经过命令行运行该文件时的处理,其余模块调用该文件时这些处理是没法被执行的,只能在命令行时被执行 #sys.argv至少有一个元素,由于第一个参数永远是该.py文件的名称,如:运行python hello.py得到的sys.argv就是['hello.py'] #运行python3 hello.py Michael得到的sys.argv就是['hello.py', 'Michael] -------------------------------------------------------------------------------------------------------------------------------------------- #命令行执行 >>>python3 hello.py #输出:Hello, world! >>>python hello.py Michael #输出:Hello, Michael! >>>import hello #没有打印Hello, word!,由于没有执行test()函数 >>>hello.test() #输出:Hello, world!
做用域
在一个模块中,可能会定义不少函数和变量
在Python中,哪些函数和变量但愿是给别人使用?哪些函数和变量是仅在模块内部使用?是经过_前缀来实现的
公开(public)
命名规则:xxx
说明:正常的函数和变量名是公开的,能够被直接引用,好比:abc,x123,PI等
编程
特殊用途
命名规则:__xxx__
说明:这样的变量是有特殊用途特的殊变量,可被直接引用
如__author__,__name__,自定义变量通常不要用这种变量名(不是不能够,只是最好不要写,用python全靠自觉)
例如,在Python中,若是调用len()函数试图获取一个对象的长度,实际上,在len()函数内部,它自动去调用该对象的__len__()方法
也就是说,执行len('ABC')时,其实在内部是在执行'ABC'.__len__()函数
非公开(private)
命名规则:_xxx 或者 __xxx
说明:这样的函数或变量就是非公开的(private),不该被直接引用,好比_abc,__abc等
Python并无一种方法能够彻底限制访问private函数或变量,所以只是从编程习惯上不该该引用private函数或变量,但不意味着不能引用
关于公开与非公开函数及变量的使用原则:
外部不须要引用的函数所有定义成private,只有外部须要引用的函数才定义为public测试