转载请标明出处:

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. 【Css】一个简单的图片库

    今天做一个简单的图片库! 其实这个在w3school教程里介绍得很好了,不过看到什么,自己动手做一次,记得也深刻不是. 我们分几步来走: 第一步:先写一个坯子. <html> <he ...

  2. PHP中的PHP_EOL和DIRECTORY_SEPARATOR

    1. PHP_EOL是php中的换行符,跨平台 1.1.换行符: unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 ...

  3. FocusBI: SSIS体系结构(原创)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...

  4. jenkins配置权限不对导致无法登陆或者空白页面解决办法

    找到.jenkins/config.xml文件:替换为:1.<authorizationStrategy class="hudson.security.AuthorizationStr ...

  5. Java入门系列-13-String 和 StringBuffer

    这篇文章带你学会字符串的日常操作 String类 字符串在日常生活中无处不在,所以掌握字符串的使用至关重要. 使用 String 对象存储字符串,String 类位于 java.lang 包中,jav ...

  6. bzoj 5319: [Jsoi2018]军训列队

    Description Solution 最优情况可以是所有人按位置从小到大排序之后依次占到自己 \(K+\) 排名的位置上去 因为每一个休息位置不同,那么一定递增,所以一定存在一个分界点,左边的是往 ...

  7. AngularJS的日期格式化有两种形式

    AngularJS的日期格式化有两种形式,一种是在HTML页面,一种是在JS代码里,都是用到AngularJS的过滤器$filter. HTML: date_expression 即 你在$scope ...

  8. 阿里云两台服务器之间拷贝文件命令scp

    参考:云栖社区 不同的Linux之间copy文件通常有4种方法 1.ftp 2.samba服务 3.sftp 4.scp 最简单的方法就是scp,可以理解为ssh管道下的cp命令 把当前一个文件cop ...

  9. 记一次java程序内存溢出问题

    一个自然语言处理程序,在封装为web-service后,部署到线上运行. 但最近出现了内存溢出的情况,频繁的out of memory. 先盲目尝试在启动脚本中增加-XX:-UseGCOverhead ...

  10. 灵感一:搜索型APP,帮助读书爱好者,搜索某本书的关键字

    灵感来自生活,我在查询 javascript 高级程序设计 3的时候,由于我记不清楚,该关键字在书的某个地方,我就想,有没有这么一款APP,可以通过扫描一本书的二维码,自动下载该书的内容,然后再通过搜 ...