模块定义
在Python中,一个.py文件就称之为一个模块(Module)。为避免不同模块冲突的方法是使用包package。只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。这样,abc.py模块的名字就变成了mycompany.abc
每一个包目录下面都会有一个__init__.py
的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。
注意
:创建模块时要注意命名,不要使用中文、特殊字符,不能和Python自带的模块名称冲突。
sys.argv
sys模块有一个argv变量,用list
存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称。运行python hello.py获得的sys.argv就是[‘hello.py’]
当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量name置为main,
这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。
if __name__=='__main__':
test()
Anaconda
在使用Python时,我们经常需要用到很多第三方库,Anaconda
是一个基于Python的数据处理和科学计算平台,它已经内置了许多非常有用的第三方库,装上Anaconda,就相当于把数十个第三方模块(包括mysql驱动,web框架等)自动安装好了,非常简单易用。设置环境变量PYTHONPATH
,该环境变量的内容会被自动添加到模块搜索路径中。
函数名、变量名定义习惯约定:
特殊变量:形如__author__
,__name__
,自定义变量不要用这种变量名
私有变量:_abc
,__abc
单个或双下划线下划线开头,private类型,并生成get set方法,不应该被直接引用
普通变量:abc,x123,PI为公开变量,public类型,可以直接引用
外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public。
def _private_1(name):
return 'Hello, %s' % name
def _private_2(name):
return 'Hi, %s' % name
def greeting(name):
if len(name) > 3:
return _private_1(name)
else:
return _private_2(name)