随笔分类 -  python cookbook学习笔记

摘要:在演示实际代码前,先说明我们的目标:能对函数参数类型进行断言,类似下面这样: @typeassert(int, int) ... def add(x, y): ... return x + y 我们可以自己实现这样一个装饰器。首先介绍下inspect.signature sig=signature( 阅读全文
posted @ 2018-12-28 15:22 red_leaf_412 阅读(394) 评论(0) 推荐(0) 编辑
摘要:在开始本节之前,首先介绍下偏函数partial。首先借助help来看下partial的定义 首先来说下第一行解释的意思: partial 一共有三个部分: (1)第一部分也就是第一个参数,是一个函数,这个函数可以是你定义的,也可以是Python内置函数 (2)第二部分是一个可变参数,*args,比如 阅读全文
posted @ 2018-12-25 14:07 red_leaf_412 阅读(510) 评论(0) 推荐(0) 编辑
摘要:比如有下面如下的代码,每个函数都需要判断debug的是否为True,而默认的debug为False def a(x,debug=False): if debug: print('calling a') def b(x,y,z,debug=False): if debug: print('callin 阅读全文
posted @ 2018-10-21 15:33 red_leaf_412 阅读(226) 评论(0) 推荐(0) 编辑
摘要:定义一个属性可由用户修改的装饰器: 在前面的介绍中使用装饰器来包装函数,这一章来介绍下如何让用户调整装饰器的属性。 首先来看下代码: from functools import wraps,partial import logging def attach_wrapper(obj,func=None 阅读全文
posted @ 2018-09-02 15:31 red_leaf_412 阅读(337) 评论(0) 推荐(0) 编辑
摘要:我们想在访问实例的属性时能够将其委托到一个内部持有的对象上,这经常用到代理机制上 class A: def spam(self,x): print("class_A:"+str(x)) def foo(self): pass class B: def __init__(self): self._a= 阅读全文
posted @ 2018-08-19 15:53 red_leaf_412 阅读(242) 评论(0) 推荐(0) 编辑
摘要:假设一个工程中有多个类,每个类都通过__init__来初始化参数。但是可能有很多高度重复且样式相同的__init__。为了减少代码。我们可以将初始化数据结构的步骤归纳到一个单独的__init__函数中,并将其定义在一个公共的基类中。示例如下: class structre(): fileds=[] 阅读全文
posted @ 2018-08-18 22:23 red_leaf_412 阅读(189) 评论(0) 推荐(0) 编辑
摘要:8.5 私有属性: 在python中,如果想将私有数据封装到类的实例上,有两种方法:1 单下划线。2 双下划线 1 单下划线一般认为是内部实现,但是如果想从外部访问的话也是可以的 2 双下划线是则无法通过外部访问且不能被继承覆盖 来看下面的这个例子: class B: def __init__(se 阅读全文
posted @ 2018-08-12 21:04 red_leaf_412 阅读(195) 评论(0) 推荐(0) 编辑
摘要:导致引用计数+1的情况: 导致引用计数-1的情况 参考下面的代码: E:\python2.7.11\python.exe E:/py_prj/python_cookbook/chapter8.py 2 2 2 由于n1,n2,n3都被传入了getrefcount,按照上面计数的规则,因此最终的引用计 阅读全文
posted @ 2017-08-13 10:50 red_leaf_412 阅读(294) 评论(0) 推荐(0) 编辑
摘要:本章介绍了描述器的用法 阅读全文
posted @ 2017-08-01 21:08 red_leaf_412 阅读(327) 评论(0) 推荐(0) 编辑
摘要:先介绍几个类中的应用__getattr__,__setattr__,__get__,__set__,__getattribute__,。 __getattr__:当在类中找不到attribute的时候,会调用__getattr__,并执行其中的自定义代码。所有在类中定义的属性都包含在__dict__ 阅读全文
posted @ 2017-07-22 10:40 red_leaf_412 阅读(360) 评论(0) 推荐(1) 编辑
摘要:本节介绍了python中父类调用的方法 阅读全文
posted @ 2017-07-16 15:48 red_leaf_412 阅读(337) 评论(0) 推荐(0) 编辑
摘要:类和对象: 我们经常会对打印一个对象来得到对象的某些信息。 class pair: def __init__(self,x,y): self.x=x self.y=y if __name__=='__main__': p=pair(3,4) print p E:\python2.7.11\pytho 阅读全文
posted @ 2017-07-16 15:44 red_leaf_412 阅读(526) 评论(0) 推荐(1) 编辑
摘要:本节介绍了函数的用法 阅读全文
posted @ 2017-07-11 16:47 red_leaf_412 阅读(388) 评论(0) 推荐(0) 编辑
摘要:本节介绍了python解析码流的模块 阅读全文
posted @ 2017-07-11 15:35 red_leaf_412 阅读(1233) 评论(0) 推荐(0) 编辑
摘要:本节介绍了python解析csv,json,xml文件的方法 阅读全文
posted @ 2017-07-08 14:29 red_leaf_412 阅读(1422) 评论(0) 推荐(0) 编辑
摘要:本节介绍了迭代器以及生成器的具体用法 阅读全文
posted @ 2017-07-05 21:31 red_leaf_412 阅读(341) 评论(0) 推荐(1) 编辑
摘要:Python中表示时间的模块是datetime,引入下面的模块 from datetime import datetime,timedelta print datetime.today() #打印出当前的时间 E:\python2.7.11\python.exe E:/py_prj/python_cookbook.py 2017-04-26 21:58:05.663000 我们还可以对时间进行加... 阅读全文
posted @ 2017-07-03 23:01 red_leaf_412 阅读(446) 评论(0) 推荐(0) 编辑
摘要:本节介绍了python文本以及字符串的令牌解析 阅读全文
posted @ 2017-07-02 14:47 red_leaf_412 阅读(421) 评论(0) 推荐(0) 编辑
摘要:过滤序列元素: 有一个序列,想从其中过滤出想要的元素。最常用的办法就是列表过滤:比如下面的形式:这个表达式的意义是从1000个随机数中选出大于400的数据 test=[] for i in range(1000): test.append(random.randint(1,1000)) ret=[n for n in test if n >400] 根据cookbook书上的描述,这个方法... 阅读全文
posted @ 2017-06-28 22:37 red_leaf_412 阅读(261) 评论(0) 推荐(0) 编辑
摘要:本节介绍了字典的相关用法 阅读全文
posted @ 2017-06-26 21:29 red_leaf_412 阅读(315) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示