python笔记6:模块
6. 模块(一个 .py 文件称为一个模块Module)
import 语句
类似 _xxx 和 __xxx 这样的 函数/变量 是非公开的(private),不应该被直接引用
函数定义: 外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public。
实例属性和类属性
千万不要把实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访问到的将是类属性。
@property装饰器 --简化代码,避免每个函数编写重复的代码 python 装饰模式--可对函数、方法或类进行装饰
**案例1(不带参数的decorator,两层嵌套):
import functools #导入functools包
def log(func):
@functools.wraps(func) #wrapper.__name__ = func.__name__
def wrapper(*args, **kw): #wrapper可接收任意参数的调用
print 'call %s():' % func.__name__ #在运行 func() 函数前打印一行日志
return func(*args, **kw)
return wrapper @log #等价于执行 now = log(now)
def now(): #调用 now() 将执行在 log() 函数中返回的 wrapper() 函数
print '2013-12-25
**案例2(带参数的decorator,三层嵌套):
import functools
def log(text): #第一层嵌套
def decorator(func): #第二层嵌套
@functools.wraps(func)
def wrapper(*args, **kw): #第三层嵌套
print '%s %s():' % (text, func.__name__) #在运行 func() 函数前打印一行带参数的日志
return func(*args, **kw)
return wrapper
return decorator @log('execute') #等价于执行 now = log('execute')(now)
def now():
print '2013-12-25'
偏函数(Partial function): 结合默认参数理解
--> 设置某些参数的默认值,并返回一个新的函数,之后调用这个新函数会更便于操作。
案例对比:
def int2(x, base=2): #传统方法
return int(x, base)
import functools #采用偏函数方法
int2 = functools.partial(int, base=2) #二进制转换
__future__
案例:在Python 2.7的代码中直接使用Python 3.x的除法,可以通过 __future__ 模块的 division 实现
from __future__ import division
python笔记6:模块的更多相关文章
- python笔记25-sys模块
import sys#sys.argv命令行参数List,第一个元素是程序本身路径# sys.exit('xxxxx')#退出程序,正常退出时exit(0)# print(sys.version) # ...
- python笔记6 模块与包 程序开发规范 包 re sys time os模块
模块与包 python 模块首引用加载到内存,如果再次引用此模块,直接从内存中读取. python文件分为:执行文件(解释器运行的文件),被引用文件(import) 模块引用一共发生了3件事: 1.他 ...
- python笔记27-time模块
import datetime, time#一种是时间戳.一种是格式化时间.一种是时间元组# print(time.timezone) # 和标准时间相差的时间,单位是sprint(int(time. ...
- python笔记24-os模块
import osprint(os.getcwd())#取当前工作目录#os.chmod('/usr/local',7)#给文件目录加权限,7是最高权限print(os.chdir(r"e: ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
- Python学习笔记—itertools模块
这篇是看wklken的<Python进阶-Itertools模块小结> 学习itertools模块的学习笔记 在看itertools中各函数的源代码时,刚开始还比较轻松,但后面看起来就比较 ...
- python笔记之常用模块用法分析
python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...
- python笔记之bisect模块
python笔记之bisect模块 当你决定使用二分搜索时,这个模块会给你带来很大的帮助. 例子 import bisect L = [1,3,3,6,8,12,15] x = 3 #在L中查找x,x ...
- python笔记之itertools模块
python笔记之itertools模块 itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生 ...
- python笔记之ZipFile模块
python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...
随机推荐
- 893E - Counting Arrays
E. Counting Arrays time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- 笔记-python tutorial-9.classes
笔记-python tutorial-9.classes 1. Classes 1.1. scopes and namespaces namespace: A namespace is ...
- 笔记-python-tutorial-4.controlflow( and function)
笔记-python-tutorial-4.controlflow( and function) 1. 函数 1.1. 定义函数 def name(x): “””函数的第一行语句可以是可 ...
- 常用的一些api
发送手机短信 // 发送短信给安全号码 SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phon ...
- Docker背后的内核知识(一)
Docker背后的内核知识 当谈论Docker时,常常会聊到Docker的实现方式.很多开发者都知道,Docker容器本质上是宿主机上的进程.Docker通过namespace实现了资源隔离.通过cg ...
- 精简Docker镜像的五种通用方法
http://dockone.io/article/8163 精简Docker镜像的好处很多,不仅可以节省存储空间和带宽,还能减少安全隐患.优化镜像大小的手段多种多样,因服务所使用的基础开发语言不同而 ...
- mongoTemplate学习笔记
mongoTemplate的andExpression表达式 Aggregation<Post> agg = Aggregation.newAggregation( Record.clas ...
- va_list
void Log( const TCHAR *pszFormat, ... ) { TCHAR buf[] ; va_list arglist ; try { _tcscpy_s ( buf, , _ ...
- error C2011: “Picture”:“struct”类型重定义
今天引用外来库时出现问题,也许是版本问题. 错误如下: .....\oursun\cincludes\quickdraw.h(309): error C2011: “Picture”:“struct” ...
- Spring boot 整合jsp、thymeleaf、freemarker
1.创建spring boot 项目 2.pom文件配置如下: <dependencies> <dependency> <groupId>org.springfra ...