设为首页 加入收藏

TOP

Python第八天 模块   包   全局变量和内置变量__name__   Python path
2019-02-13 02:46:49 】 浏览:8
Tags:Python 第八 模块   全局 变量 内置 __name__ path

Python第八天 模块 包 全局变量和内置变量__name__ Python path

目录

Pycharm使用技巧(转载)

Python第一天 安装 shell 文件

Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化

Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典

Python第四天 流程控制 if else条件判断 for循环 while循环

Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数

Python第六天 类型转换

Python第七天 函数 函数参数 函数变量 函数返回值 多类型传值 冗余参数 函数递归调用 匿名函数 内置函数 列表表达式/列表重写

Python第八天 模块 包 全局变量和内置变量__name__ Python path

Python第九天 面向对象 类定义 类的属性 类的方法 内部类 垃圾回收机制 类的继承 装饰器

Python第十天 print >> f,和fd.write()的区别 stdout的buffer 标准输入 标准输出 标准错误 重定向 输出流和输入流

Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 生成器 walk模块 hashlib模块

Python第十二天 收集主机信息 正则表达式 无名分组 有名分组

Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块

Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式

Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

模块
模块是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

if __name__ == '__main__':
print 'a'
if __name__ == 'test1':
print 'b'

vi test2.py

import test1

python test2.py:会输出 b,不会输出a

__name__是python的内置变量,它有两个值:'__main__'或者模块名。
它的值为’__main__'时表示当前模块(即python脚本)是被直接执行,如果模块被其他文件导入时,__name__的值为模块名字。


------------------------------------------------------------
python环境变量
Python path

python解释器通过sys.path去一个地方一个地方的寻找模块,跟linux的$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/

Python 获取当前python文件所在目录
方法1: 
import os
import sys
print(os.path.abspath('main.py'))

os.path.abspath('../a/t.py')
#/home/lmx/a/t.py

判断路径是绝对路径还是相对路径
print os.path.isabs('.')




方法2: 
import os
import sys
print(sys.path[0])

方法1如果当前目录切换到其他目录,就无法获取到当前python文件所在目录,建议使用方法2







示例程序

wc.py
#!/usr/bin/python

def wordCount(s):
    chars=len(s)
    words=len(s.split())
    lines=s.count('\n')+1
    print lines,words,chars
    print s.split()

if __name__ == '__main__':   --->内置变量__name__ ,得出的值为 '__main__'
    s= open('/etc/passwd').read()
    wordCount(s)
-------------------------------------
test.py
#!/usr/bin/python

import wc            

s="""hello world python"""

wc.wordCount(s)





编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇cmd中执行Python命令时>>&g.. 下一篇Python第六天   类型转换

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }