Python模块 包 全局变量和内置变量__name__ Python path
模块
模块是Python组织代码的基本方式。
一个Python脚本可以单独运行,也可以导入到另一个脚本中运行,当脚本被导入运行时,我们将其称为模块(module)。
所有的.py文件都可以作为一个模块导入
模块名与脚本的文件名相同
模块是一个可以导入的Python脚本文件
例如我们编写了一个名为hello.py的脚本,则可以在另一个脚本中用import hello语句来导入它。
模块名不能以数字命名,比如1.py,用数字命名在py脚本里导入模块的时候会报错
------------------------------------------------------------
包
Python的模块可以按目录组织为包
创建一个包的步骤:
- 创建一个名字为包名的目录
- 在该目录下创建一个__init__.py文件,此文件可以存放包的信息
- 根据需要,在该目录下存放脚本文件或已编译的扩展及子包
- 使用的时候,在脚本头部 只导入模块: 包名.模块名,也可以整个包导入
import pack.m1, pack.m2, pack.m3
import pack
day04:包名
wc:模块名
wordCount:函数名
from day04 import wc
或
import day04.wc
或
from day04.wc import wordCount
或
from day04.wc import wordCount as wc123 给函数/模块起一个别名,别名为wc123
导入模块和包的语法:
- import , import as
- from … import …
- from … import … as
------------------------------------------------------------
全局变量__name__
脚本名:test1.py
vi test1.py
:':'
vi test2.py
import test1
python test2.py:会输出 b,不会输出a
__name__是python的内置变量,它有两个值:'__main__'或者模块名。
它的值为’__main__'时表示当前模块(即python脚本)是被直接执行,如果模块被其他文件导入时,__name__的值为模块名字。
------------------------------------------------------------
python环境变量
Python path
得到python的path环境变量,类似shell的$PATH
import sys
sys.path
sys.path
['',
'/usr/bin',
'/usr/lib64/python26.zip',
'/usr/lib64/python2.6',
'/usr/lib64/python2.6/plat-linux2',
'/usr/lib64/python2.6/lib-tk',
'/usr/lib64/python2.6/lib-old',
'/usr/lib64/python2.6/lib-dynload',
'/usr/lib64/python2.6/site-packages',
'/usr/lib/python2.6/site-packages',
'/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info',
'/usr/lib/python2.6/site-packages/IPython/extensions',
'/home/yonghualin/.ipython']
第一种方法
添加路径到Python PATH环境变量
sys.path.append('/root/ss')
第二种方法
PYTHONPATH变量是shell下定义,会自动添加到sys.path列表里
在/etc/profile里
export PYTHONPATH=/root/test
export PATH=$PATH:/usr/local/mysql/bin
示例程序
wc.py!/usr/bin/python wordCount(s): chars=len(s) words=len(s.split()) lines=s.count(')+1 lines,words,chars s.split() s= open().read() wordCount(s)-------------------------------------test.py!/usr/bin/python wc s=wc.wordCount(s)