转载请标明出处:

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模块(进阶3)的更多相关文章

  1. Python模块进阶、标准库、扩展库

    模块进阶 Python有一套很有用的标准库(standard library).标准库会随着Python解释器,一起安装在你的电脑中的. 它是Python的一个组成部分.这些标准库是Python为你准 ...

  2. Python 模块进阶

    import导入模块 1. import 搜索路径 import sys sys.path 例子: In [1]: import sys In [2]: sys.path Out[2]: ['', ' ...

  3. Python爬虫进阶五之多线程的用法

    前言 我们之前写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理. 首先声明一点! 多线程和多进程是不一样的!一个是 thread ...

  4. Python爬虫进阶一之爬虫框架概述

    综述 爬虫入门之后,我们有两条路可以走. 一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为自己的爬虫增加分布式,多线程等功能扩展.另一条路便是学习一些优 ...

  5. python模块介绍-locustio:性能测试工具locustio

    转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...

  6. 年薪20万Python工程师进阶(7):Python资源大全,让你相见恨晚的Python库

    我是 环境管理 管理 Python 版本和环境的工具 pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. virtualenv – 创建独立 Python 环 ...

  7. Python面向对象进阶(二)

    Python面向对象进阶2.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1 ...

  8. Python 简明教程 --- 17,Python 模块与包

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 正确的判断来源于经验,然而经验来源于错误的判断. -- Fred Brooks 目录 我们已经知道函 ...

  9. 学习python须知,Python基础进阶需掌握哪些知识点?

    Python基础进阶需要掌握哪些知识点?Python将是每个程序员的标配,有编程基础再掌握Python语言对于日后的升职加薪更有利.Python语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...

随机推荐

  1. Android Gson解析复杂Json

    JSON原数据 {"total":1,"rows":[{"ID":1,"Title":"台州初级中学招收初一年 ...

  2. <数据挖掘导论>读书笔记8FP树

    1FP树

  3. 007.ASP.NET MVC控制器依赖注入

    原文链接:http://www.codeproject.com/Articles/560798/ASP-NET-MVC-Controller-Dependency-Injection-for-Be 前 ...

  4. angularJS请求参数 ajax

    1. 使用angular服务请求 app.controller('main', function($scope, $http) { $scope.fun1 = function () { $http( ...

  5. vs2017启动调试,点击浏览器或输入后回车浏览器闪退,调试中断

    vs2017在启动调试后,浏览器运行,点击地址栏刚输入几个字符,mmmmm居然闪退了! 什么情况呢?测试一下,换其他浏览器进行调试,偶尔不会有问题, 可是第二天......还是一下 于是浏览器——ww ...

  6. SSH,SSM框架文件上传

    一.了解文件上传 1.1        什么是文件上传 将本地文件通过流的形式写到服务器上 1.2        文件上传的技术 JspSmartUpload: 其组件是应用jsp进行B/S程序开发过 ...

  7. MySQL批量插入多条数据方便测试

    批量插入流程 数据库字段 delimiter create procedure doinsert3() begin declare i int; declare j int; ; ; ) do ins ...

  8. C10K问题摘要

    本文的内容是下面几篇文章阅读后的内容摘要: http://www.kegel.com/c10k.html (英文版) http://www.oschina.net/translate/c10k (中文 ...

  9. pycharm下 os.system os.popen执行命令返回有中文乱码

    原文 settings:

  10. 【转】JSON.parse()与JSON.stringify()的区别

    JSON.parse()[从一个字符串中解析出json对象] 例子: //定义一个字符串 var data='{"name":"goatling"}' //解析 ...