IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 闭包 装饰器 委托属性 -> 正文阅读

[Python知识库]Python 闭包 装饰器 委托属性

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()
# 例如: 传入10 ->输出10
f(10)
# 传入15 ->输出25
f(15)
# 传入20 ->输出45
f(20)

2、装饰器

#定义一个装饰器:打印函数运行花费的时间
# 你在执行之前获取一个时间
# 执行函数
# 在执行函数之后获取一个时间
# 去求时间差
# time模块
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、委托属性

# 4.定义一个类:
# 要求:包含一个对象属性,且用_(单下划线)命名的
# 定义一个类方法(装饰器)
# 定义一个静态方法(装饰器)
# 定义委托属性(三个类装饰器): 可以访问_命名的属性的值
# 可以修改_命名的属性的值
# 可以删除_命名的属性

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

# 对象.委托属性 = value
a1.a = 2

# del 对象.委托属性
del a1.a

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:26:19  更:2021-11-09 19:27:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:55:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码