Python学习笔记(模块)
模块
1、Python中一个.py文件就是一个模块,使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量可以分别存在不同的模块中。
2、为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。
例子:
mycompany
├─ web
│ ├─ __init__.py
│ ├─ utils.py
│ └─ www.py
├─ __init__.py
├─ abc.py
└─ utils.py
每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,__init__.py本身就是一个模块,而它的模块名就是mycompany和mycompany.web。
www.py的模块名就是mycompany.web.www,两个文件utils.py的模块名分别是mycompany.utils和mycompany.web.utils
使用模块
1、定义一个模块
例子:
hello模块
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
' a test module ' #模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档
#注释
__author__ = 'Michael Liao' #作者
import sys #引入sys模块
def test():
args = sys.argv #sys的argv变量,用list存储了命令行的所有参数。argv至少有一个
#元素,因为第一个参数永远是该.py文件的名称。运行python3
#hello.py获得的sys.argv就是['hello.py']
if len(args)==1:
print('Hello, world!')
elif len(args)==2:
print('Hello, %s!' % args[1])
else:
print('Too many arguments!')
if __name__=='__main__':
test()
2、特殊变量
类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊变量。特殊变量__name__,当在命令行运行hello模块时,__name__置为__main__,其他地方导入该hello模块时,__name__不为__main__。
类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用。从编程习惯上不应该引用private函数或变量。
1、Python中一个.py文件就是一个模块,使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量可以分别存在不同的模块中。
2、为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。
例子:
mycompany
├─ web
│ ├─ __init__.py
│ ├─ utils.py
│ └─ www.py
├─ __init__.py
├─ abc.py
└─ utils.py
每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,__init__.py本身就是一个模块,而它的模块名就是mycompany和mycompany.web。
www.py的模块名就是mycompany.web.www,两个文件utils.py的模块名分别是mycompany.utils和mycompany.web.utils
使用模块
1、定义一个模块
例子:
hello模块
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
' a test module ' #模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档
#注释
__author__ = 'Michael Liao' #作者
import sys #引入sys模块
def test():
args = sys.argv #sys的argv变量,用list存储了命令行的所有参数。argv至少有一个
#元素,因为第一个参数永远是该.py文件的名称。运行python3
#hello.py获得的sys.argv就是['hello.py']
if len(args)==1:
print('Hello, world!')
elif len(args)==2:
print('Hello, %s!' % args[1])
else:
print('Too many arguments!')
if __name__=='__main__':
test()
2、特殊变量
类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊变量。特殊变量__name__,当在命令行运行hello模块时,__name__置为__main__,其他地方导入该hello模块时,__name__不为__main__。
类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用。从编程习惯上不应该引用private函数或变量。
评论
发表评论