Python模块(进阶3)
转载请标明出处:
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
Python模块(进阶3)的更多相关文章
- Python模块进阶、标准库、扩展库
模块进阶 Python有一套很有用的标准库(standard library).标准库会随着Python解释器,一起安装在你的电脑中的. 它是Python的一个组成部分.这些标准库是Python为你准 ...
- Python 模块进阶
import导入模块 1. import 搜索路径 import sys sys.path 例子: In [1]: import sys In [2]: sys.path Out[2]: ['', ' ...
- Python爬虫进阶五之多线程的用法
前言 我们之前写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理. 首先声明一点! 多线程和多进程是不一样的!一个是 thread ...
- Python爬虫进阶一之爬虫框架概述
综述 爬虫入门之后,我们有两条路可以走. 一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为自己的爬虫增加分布式,多线程等功能扩展.另一条路便是学习一些优 ...
- python模块介绍-locustio:性能测试工具locustio
转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...
- 年薪20万Python工程师进阶(7):Python资源大全,让你相见恨晚的Python库
我是 环境管理 管理 Python 版本和环境的工具 pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. virtualenv – 创建独立 Python 环 ...
- Python面向对象进阶(二)
Python面向对象进阶2.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1 ...
- Python 简明教程 --- 17,Python 模块与包
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 正确的判断来源于经验,然而经验来源于错误的判断. -- Fred Brooks 目录 我们已经知道函 ...
- 学习python须知,Python基础进阶需掌握哪些知识点?
Python基础进阶需要掌握哪些知识点?Python将是每个程序员的标配,有编程基础再掌握Python语言对于日后的升职加薪更有利.Python语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...
随机推荐
- Android Gson解析复杂Json
JSON原数据 {"total":1,"rows":[{"ID":1,"Title":"台州初级中学招收初一年 ...
- <数据挖掘导论>读书笔记8FP树
1FP树
- 007.ASP.NET MVC控制器依赖注入
原文链接:http://www.codeproject.com/Articles/560798/ASP-NET-MVC-Controller-Dependency-Injection-for-Be 前 ...
- angularJS请求参数 ajax
1. 使用angular服务请求 app.controller('main', function($scope, $http) { $scope.fun1 = function () { $http( ...
- vs2017启动调试,点击浏览器或输入后回车浏览器闪退,调试中断
vs2017在启动调试后,浏览器运行,点击地址栏刚输入几个字符,mmmmm居然闪退了! 什么情况呢?测试一下,换其他浏览器进行调试,偶尔不会有问题, 可是第二天......还是一下 于是浏览器——ww ...
- SSH,SSM框架文件上传
一.了解文件上传 1.1 什么是文件上传 将本地文件通过流的形式写到服务器上 1.2 文件上传的技术 JspSmartUpload: 其组件是应用jsp进行B/S程序开发过 ...
- MySQL批量插入多条数据方便测试
批量插入流程 数据库字段 delimiter create procedure doinsert3() begin declare i int; declare j int; ; ; ) do ins ...
- C10K问题摘要
本文的内容是下面几篇文章阅读后的内容摘要: http://www.kegel.com/c10k.html (英文版) http://www.oschina.net/translate/c10k (中文 ...
- pycharm下 os.system os.popen执行命令返回有中文乱码
原文 settings:
- 【转】JSON.parse()与JSON.stringify()的区别
JSON.parse()[从一个字符串中解析出json对象] 例子: //定义一个字符串 var data='{"name":"goatling"}' //解析 ...