手记

Python学习之 模块、 包

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)

 

0人推荐
随时随地看视频
慕课网APP