python模块(进阶3)
1. python中模块和包的概念
同一个名字的变量互不影响
代码越来越多的时候
将所有代码放入一个py文件:无法维护 如果将代码分拆放入多个py文件,好处:同一个名字的变量互不影响
引用其他模板
# test.py # 自身模块名test import math # 引用math模块 print math.pow(2,10) # 调用math模块的函数模块多了以后,也容易重名
解决:
同名的模块放入不同的包中
引用完整的模块
# test.py # 自身模块名test import p1.util # 引用p1.util模块 print p1.util.f(2,10) # 调用p1.util模块的f函数在文件系统中
包就是文件夹 模块就是xxx.py文件 包也可以有多级如何区别包和普通的目录
包下面有__init__.py 注意每层都必须要有! 2. python之导入模块要使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块。
# -*- coding: utf-8 -*- import math, logging print math.log(10) # 调用的是math的log函数 logging.log(10, 'something') # 调用的是logging的log函数使用别名from...import log as logger
# -*- coding:utf-8 -*- from math import log from logging import log as logger # logging的log现在变成了logger print log(10) # 调用的是math的log logger(10, 'import from logging') # 调用的是logging的log import os print os.path.isdir(r'/data/webroot/resource/python') print os.path.isfile(r'/data/webroot/resource/python/test.txt') 3. python中动态导入模块如果导入的模块不存在,Python解释器会报 ImportError 错误
try: import json except ImportError: import simplejson as json print json.dumps({'python':2.7}) # {"python": 2.7} 4. python之使用__future__Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。
Python 2.7的整数除法运算结果仍是整数
print 10 / 3 # 3Python 3.x已经改进了整数的除法运算,“/”除将得到浮点数,“//”除才仍是整数
print 10 / 3 # 3.33333333333 print 10 // 3 # 3在Python 2.7中引入3.x的除法规则,导入__future__的division
from __future__ import division print 10 / 3 # 3.33333333333 from __future__ import unicode_literals s = 'am I an unicode?' print isinstance(s, unicode) 5. python之安装第三方模块 内置了许多有用的模块 可以安装第三发模块python提供的模块管理工具
easy_install pip(推荐,已内置到python2.7.9)pip install web.py
https://pypi.python.org/