目录
一、模块Module
1、模块的含义:简单地说,一个py文件就是一个模块。
2、模块调用的例子
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
' a test module '
__author__ = 'Michael Liao'
import sys
def test():
args = sys.argv
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()
3、if __name__='__main__'的作用:
这种if
测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。
4、作用域:
(1)一般函数和变量是公开的public
(2)_ _***_ _:特殊变量,一般为特殊用途,通常自己不这样定义
(3)_***:用_前缀的为私有变量private,一般习惯上不该直接引用,但也无法禁止直接引用;一般用来模块内用,以便更好地实现代码封装
【例程】
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)
5、安装第三方模块
Anaconda
二、包Package
就是用来装这些模块的一个更高的架构,上层目录(可以有多层目录即多层包结构,此时用点点点就行了)。
mycompany
├─ __init__.py
├─ abc.py
└─ xyz.py
注:每一个包目录下面都会有一个__init__.py
的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。
注:模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc
,若成功则说明系统存在此模块。