@property作用: python的@property是python的一种装饰器,是用来修饰方法的。 我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改。 1.修饰方法,让方法可以像属性 ...
分类:
编程语言 时间:
2020-03-29 10:53:26
阅读次数:
85
在学习函数装饰器前,首先要学习高阶函数+函数嵌套+闭包 高阶函数 只要满足下列条件之一就是一个高阶函数: 1.函数接收的参数是一个函数名 2.函数的返回值是一个函数名 第一种情况:接收的参数是一个函数名 1 def foo1(name): 2 return name() 3 def foo2(): ...
分类:
编程语言 时间:
2020-03-28 23:09:17
阅读次数:
84
讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。 谈装饰器前,还要先要明白一件事,Python 中的函数和 Java、C++不太一样,Python 中的函数可以像普通变量一样当做参数传递给另外一个函数,例如: 先来看一个简单例子,虽然实际代码可能比这复杂很多: 说到这 ...
分类:
编程语言 时间:
2020-03-27 21:48:42
阅读次数:
93
# -*- coding:utf-8 def a_new_decorator(a_func): def wrapTheFunction(): print("I am doing some boring work before executing a_func()") a_func() print(" ...
分类:
其他好文 时间:
2020-03-27 15:37:54
阅读次数:
68
未加@wraps # def tag(name):# def decorator(func):# def wrapper(text):# value=func(text)# return "<{name}>{value}</{name}>".format(name=name,value=value) ...
分类:
编程语言 时间:
2020-03-27 13:15:23
阅读次数:
85
解释:装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 装饰器模式的最主要的功能 1、 ...
分类:
编程语言 时间:
2020-03-27 13:08:32
阅读次数:
160
Javascript设计模式 设计模式有23种,分为三个大类创建型,结构型,行为型。 创建型:工厂模式(工厂方法模式,抽象工厂模式,建造者模式),单例模式,原型模式。 解构型:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型:策略模式,迭代器模式,模版方法模式,职责 ...
分类:
编程语言 时间:
2020-03-26 01:16:35
阅读次数:
81
一:装饰器、生成器(补充了解***) 1、叠加多个装饰器的加载、运行分析(了解***) def deco1(func1): #func1 = wrapper2的内存地址 def wrapper(*args,**kwargs): print('正在运行 >deco1.wrapper1') res1 = ...
分类:
编程语言 时间:
2020-03-25 23:51:30
阅读次数:
142
名称修饰 java和C 等其他高级语言中都有private关键字来修饰一个属性或字段是私有的,但是python中并没有private,而是有个与它接近的概念旧式名称修饰。每当在一个属性前面加上__前缀,解释器就会立刻将其重命名: 直接访问会抛异常 利用dir函数查看内部属性 python内部会把__ ...
分类:
编程语言 时间:
2020-03-25 21:03:45
阅读次数:
64
一、有参装饰器: 1、知识储备 由于语法糖@的限制,outter函数只能有一个参数,并且该才是只用来接收被装饰对象的内存地址 def outter(func): ? #func = 函数的内存地址 ? def wrapper(*args,**kwargs): res=func(*args,**kwa ...
分类:
编程语言 时间:
2020-03-25 19:29:56
阅读次数:
62