python模块定义规范

模块定义

在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,该环境变量的内容会被自动添加到模块搜索路径中。
修改为本机默认path

函数名、变量名定义习惯约定:

特殊变量:形如__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)

猜你喜欢

转载自blog.csdn.net/chang_li/article/details/81583361