[TOC] classmethod classmethod是python自带的装饰器 作用 装饰定义在类中的函数,使这个函数变成类的绑定方法,我们都知道对象的绑定方法的特殊之处在于,它会把对象当作第一个参数传入,而类的绑定方法与此相似,它会把对象当第一个参数传入。 使用方法 staticmethod ...
分类:
其他好文 时间:
2019-10-14 01:14:07
阅读次数:
94
[TOC] 封装 1.封装的定义 ? 将复杂的丑陋的,隐私的细节隐藏到内部,对外提供简单的使用接口, 对外隐藏内部实现细节,并提供访问的接口; 2.封装的目的: 封装的目的: 面向对象的核心是对象二字,精髓在于整合,封装的目的其实就是把一堆数据属性和方法属性整合到对象中,我们可以把对象比喻成一个容器 ...
分类:
其他好文 时间:
2019-10-13 12:36:07
阅读次数:
70
昨日回顾 类的绑定方法 classmethod(类的绑定方法) 翻译过来是一个类方法,是一个装饰器,可以装饰给类内部的方法,使该方法绑定给类来使用。 对象的绑定方法的特殊之处:由对象来调用,会将对象当作第一个参数传给该方法 类的绑定方法的特殊之处:由类来调用,会将类仿作第一个参数传给该方法 通过对象 ...
分类:
其他好文 时间:
2019-10-12 20:22:14
阅读次数:
91
def generator(): print(12) num=yield 12 print("**",num) print(52) yield 445 g=generator()#把这个函数传给g,变成一个生成器 ret=g.__next__() print(ret) ret=g.send("hel ...
分类:
其他好文 时间:
2019-10-12 18:27:27
阅读次数:
92
类方法和静态方法 类方法和实例方法 类方法 a = MyClass() a.clsmtd()是可以调用的, 等同于 1. 在类定义中,使用@classmethod装饰器修饰的方法 2. 必须至少有一个参数,且第一个参数就给了cls,cls指调用者就是对象自己 3. cls可以是任意合法名称,但是为了 ...
分类:
其他好文 时间:
2019-10-12 15:51:59
阅读次数:
68
原则:开放封闭原则 装饰器:在不改变原函数调用的情况下,对函数前后进行修改 装饰器的本质:闭包函数 def wrapper(f): def inner(f): print("在装饰之前做的事") ret=f(*arg,**karg) print("在装饰之后做的事") return rets ret ...
分类:
其他好文 时间:
2019-10-11 18:42:57
阅读次数:
97
装饰器的一个关键特性是,它们在被装饰的函数定义之后立即运行。这 通常是在导入时(即 Python 加载模块时),如示例 7-2 中的 registration.py 模块所示。 示例 7-2 registration.py 模块 registry = [] def register(func): p ...
分类:
编程语言 时间:
2019-10-11 18:16:49
阅读次数:
113
Django基础九之中间件 本节目录 [TOC] 一 前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。 学完今天的内容之 ...
分类:
其他好文 时间:
2019-10-10 22:58:56
阅读次数:
116
闭包函数 把函数A和变量x包在函数B内部,然后通过函数B的返回值返回出函数A对象 装饰器 用来给函数加功能的,他的本质也是函数 为什么用装饰器 假设我们已经上线了一个项目,我们需要修改某一个方法,但是我们不想修改方法的使用方法,这个时候可以使用装饰器。因为软件的维护应该遵循开放封闭原则,即软件一旦上 ...
分类:
其他好文 时间:
2019-10-10 22:18:22
阅读次数:
132
进程接口Runnable是一个函数式接口,它的子类有Thread和任何实现它的类。但是由于它是一个函数式接口想要启动必须借助Thread的start方法,因此这里就用到了装饰器模式。把用户实现的Runnable类放入Thread方内部就能在不改变原对象代码的基础上给他扩展出start方法。 [TOC ...
分类:
编程语言 时间:
2019-10-09 12:18:52
阅读次数:
110