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语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...
随机推荐
- BAT的关于程序员的那些事
前言 你是否早有进入BAT公司的想法,但却因为对其不了解而在门外彷徨? 你是否想把技术团队打造成像BAT这些超级互联网公司,但却无从下手? 你是否已经进入了BAT,但是不知道如何晋升而苦恼? 那这篇文 ...
- spring-boot配置热更新
spring boot使用的时候会遇到不断重启启动类的情况,热更新可以免去手动重启的烦恼,spring boot应用配置热更新主要有两种方式: 1.使用springloaded 配置pom.xml文件 ...
- openlayers 4快速渲染管网模型数据
1.背景 项目需要将管网模型运行的结果数据在矢量地图上以不同颜色加以区分.结果数据中和图层数据中唯一能对应的只有一个标识. 2.实现思路 利用定时器+图层统一渲染.在style上找到突破口,而不是用常 ...
- mysql主从复制测试
mysql主从复制测试: 1. 配置主服务器:在主库上面添加复制账号GRANT REPLICATION SLAVE on *.* to 'mark'@'%' identified by 'mark' ...
- java温故而知新(9)OOP(面向对象编程)理念
Object Oriented Programming (面向对象的程序设计) 1.定义 面向对象程序设计(OOP)的具体定义很难下,也很容易因此而引起争论,在 Object-Orie ...
- Linux下查看Tomcat的控制台输出信息
Linux下查看Tomcat的控制台输出信息 首先使用SSH连接到数据库,然后点击window创建一个new terminal, 进入tomcat/logs/文件夹下,输出控制台信息,命令如下: cd ...
- CakePHP redirect函数
public function getContract($value=''){ App::uses ( 'UserContractController', 'Controller' ); $Contr ...
- 如何去除vue项目中的 # — vue路由的History模式
前言 在创建的 router 对象中,如果不配置 mode,就会使用默认的 hash 模式,该模式下会将路径格式化为 #! 开头. 添加 mode: 'history' 之后将使用 HTML5 his ...
- centos yum安装常用命令
安装killall命令 yum install -y psmisc 安装sz(下载)和rz(上传)命令 yum install -y lrzsz 安装 ifconfig 命令 yum install ...
- BZOJ2882: 工艺(后缀数组)
题意 题目链接 Sol 直接把序列复制一遍 后缀数组即可 在前\(N\)个位置中取\(rak\)最小的输出 #include<bits/stdc++.h> using namespace ...