设为首页 加入收藏

TOP

Python模块(进阶3)
2017-10-09 16:59:56 】 浏览:2276
Tags:Python 模块 进阶

转载请标明出处:
http://www.cnblogs.com/why168888/p/6411917.html

本文出自:【Edwin博客园】


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 # 3

Python 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/

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python version 2.7 required, wh.. 下一篇Python类的继承(进阶5)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目