1、闭包
"""
什么是闭包?
简单来说就是一个函数定义中引用了函数外定义的变量,并且该函数可以在其定义环境外被执行。这样的一个函数我们称之为闭包。
闭包的特征?
1)有内层函数和外层函数,
2)内层函数调用了外层函数的临时变量/参数 ,
3)外层函数返回内层函数的引用
"""
class pack:
def fun1(self):
list_data = []
def fun2(data):
list_data.append(data)
print(sum(list_data))
return fun2
p1 = pack()
f = p1.fun1()
f(10)
f(15)
f(20)
2、装饰器
import time
def outer(fun):
def inner():
tim1 = time.time()
fun()
tim2 = time.time()
print(tim2 - tim1)
return inner
@outer
def fun3():
for i in range(10000000):
pass
fun3()
3、委托属性
class A:
def __init__(self, a):
self._a = a
@staticmethod
def fun_static():
print("static")
@classmethod
def fun_cls(cls):
print(cls)
@property
def a(self):
return self._a
@a.setter
def a(self, val):
self._a = val
@a.deleter
def a(self):
del self._a
a1 = A(1)
A.fun_static()
a1.fun_static()
A.fun_cls()
a1.fun_cls()
a1.a
a1.a = 2
del a1.a
|