- 博客(73)
- 收藏
- 关注
原创 Python3-Cookbook(第九章) - 元编程Part3
@File : 15-定义有可选参数的元类.py"""为了使元类支持关键字参数,你必须确保在 __prepare__() , __new__() 和 __init__() 方法中都使用强制关键字参数""""""应用举例:假设我们在开发一个插件系统,希望能够自动注册所有插件类,而不需要在代码中显式注册它们。我们可以使用元类来捕获类的创建,并根据传入的额外参数决定是否注册这个类。
2024-04-28 21:11:46
279
1
原创 Python3-Cookbook(第九章) - 元编程Part2
@File : 09-将装饰器定义为类.py# 执行被包装的函数funcelse:# self其实就指向被包装的函数-->return self.__wrapper__(args,kwargs)# 这也是为何要实现__call__,因为能够实现profiled()这种写法-->会执行__call__方法,而__call__方法## 返回的是对fun的调用# 为实例instance绑定fun@Profiled@Profileda = add。
2024-04-14 10:35:29
678
原创 Python3-Cookbook(第九章) - 元编程Part1
对应cookbook章节 9.5# @File : 05-可自定义属性的装饰器.py""""""# 通过装饰器,给wrapper设置一个属性,属性名字就是被装饰函数:即set_level,然后属性值是 该函数的引用# 所以调用wrapper的set_level属性时,本质上就是在调用该方法。然后该方法会修改 level的值# 申明该变量不是函数set_level中的局部变量,而是函数之外 logged函数中的参数# 注意这里不要去改msg的值,而是要去修改log_msg。
2024-04-14 10:28:00
418
1
原创 Spark源码(二)-Netty简介
Netty 是一个异步事件驱动的网络通信应用框架,用于快速开发可维护的高性能服务器和客户端。简单地说Netty封装了JDK的NIO,不用再写一大堆复杂的代码,从NIO各种繁复的细节中脱离出来,让开发者重点关心业务逻辑。二、Netty重要API大部分是模板代码,重点应该关注的是处理业务逻辑的Handler, 其按照角色不同分为ServerHandler和ClientHandler,按照数据处理流向不同,分为(对应接口是ChannelInboundHandlerAdapter)-处理输入数据,比如。
2024-03-31 10:10:31
1079
原创 Django(四)-搭建第一个应用(3)
第二和第三个模式的路径字符串中匹配的模式名称已从。视图,它期望从 URL 中捕获的主键值被称为。通用视图来替换我们的。
2024-03-28 22:06:29
410
原创 Django(三)-搭建第一个应用(2)
文件夹中寻找 "templates" 子目录。这就是为什么尽管我们没有像在第二部分中那样修改 DIRS 设置,Django 也能正确找到 polls 的模板位置的原因。Django 将会在这个目录里查找模板文件。设置成了 True。为新增的三个视图配置urlCONF。默认的设置文件设置了。
2024-03-26 22:49:20
476
原创 Django(二)-搭建第一个应用(1)
主要用于生成模型对应的数据库表结构,注意此时还没有执行迁移,该文件只是描述应该执行哪些sql操作。来跟踪执行过哪些迁移)并应用在数据库上 - 也就是将你对模型的更改同步到数据库结构上。命令选中所有还没有执行过的迁移(Django 通过在数据库中创建一个特殊的表。点击 “What's up?” 可编辑这个问题(Question)对象。文件夹中生成如下文件:sql操作命令。
2024-03-26 20:22:02
837
原创 Spark源码(一)-SparkRPC示例
RPC全称为远程过程调用(Remote Procedure Call),它是一种计算机通信协议,允许一个计算机程序调用另一个计算机上的子程序,而无需了解底层网络细节。通过RPC,一个计算机程序可以像调用本地程序一样调用远程程序,使得分布式应用程序的开发更加简单和高效。
2024-03-20 21:32:43
806
原创 流畅的Python(二十)-属性描述符
是对多个属性运用的一种方式。其是实现了的类,常见协议包括__get__,__set__,__delete__方法。上一章介绍的就实现了完整的描述符协议。
2024-03-17 13:02:06
489
原创 流畅的Python(十九)-动态属性和特性
@File : 07-定义特性工厂.pyelse:# 以下是两个特性# 以下是两个与特性同名的两个属性# 1.查看类的属性,可以发现weight和price是两个特性# 2. 实例有两个同名的属性:weight和price# 3.特性的工作流程## (1) 通过实例访问weight,由于特性优先级大于实例属性,所以实际上会走特性的qty_getter方法## (2) 所以返回computer.__dict['weight'],即实例属性中存放的值。
2024-03-16 21:44:14
671
原创 流畅的Python(十八)-使用asyncio包处理并发
1. 对比一个简答的多线程程序和对应的asyncio版,说明多线程和异步任务之间的关系2. 网络下载的异步版3. 在异步编程中,与回调相比,协程显著提升性能的方式。
2024-03-11 20:33:48
485
原创 流畅的Python(十七)-使用future处理并发
主要以三个模拟网络下载的代码-分别是依序下载、使用中的方法、以及使用该模块的和方法,来展示Python实现的其中一种方式。
2024-03-06 21:27:16
1354
原创 流畅的Python(十六)-协程
1. 生成器作为协程使用时的行为状态2.使用装饰器自动预激协程3.调用方使用close和throw方法控制协程4.协程终止时如何返回值5.yield from新句法的用途和语义6.案例:出租车队运营仿真。
2024-03-02 14:18:53
487
原创 流畅的Python(十四)-可迭代对象、迭代器和生成器
1. 使用iter内置函数处理可迭代对象的方式2. 如何使用Python实现经典的迭代器模式3. 生成器函数工作原理4. 使用生成器函数或生成器表达式代替经典的迭代器5. 使用yield from语句合并生成器。
2024-02-27 22:01:47
655
原创 流畅的Python(十一)-从协议到抽象基类
@File : 03-定义抽象基类的子类.py"""MutableSequence抽象基类有三个抽象方法,子类必须要实现3. insert"""# 1.通过切片获取元素#2.插入元素#3.删除元素# 删除第二步添加的元素# @File : 04-自定义抽象基类.pyimport abc# 定义抽象基类"""从可迭代对象中加载元素""""""随机删除元素,然后将其返回如果实例为空,这个方法应该抛出LookupError"""
2024-02-23 21:34:33
418
原创 Vue3的computed计算属性和watch监视(四)
不同的是,newVal和oldVal是一样的,表明通过Object.assign重新赋值的时候,并不是生成一个新的对象,而是新的值覆盖了旧值。监视【ref】或者【reactive】定义的【对象类型】数据的某个属性(基本数据类型或者对象类型-都建议写成函数形式)监视【reactive】定义的【对象类型】数据。监视【ref】定义的【基本数据】类型。监视【ref】定义的【对象类型】数据。
2024-02-19 21:16:01
747
原创 流畅的Python(十)-序列的修改、散列和切片
以第九章定义的二维向量为基础,定义表示多为向量的Vector类。该类将支持如下功能:1. 基本的序列协议2. 适当的切片支持,且返回的是新Vector实例3.综合各个元素的值计算散列值4.格式化展示。
2024-02-17 22:56:29
496
原创 流畅的Python(九)-符合Python风格的对象
3.扩展内置的format()函数和str.format()方法使用的。接续第一章,说明如何实现很多Python类型中常见的特殊方法。5.把对象变成可散列的,以便在集合中作为dict的键使用。1. 支持使用生成对象其他表示形式的。(如repr(),bytes()等)6.利用__slots__节省内存。2. 使用类方法,实现。
2024-02-13 21:21:09
464
原创 Linux磁盘分区和挂载
(1) 一块硬盘最多只能有4个主分区(2) 其中一个(且最多只能有一个)主分区能作为,而扩展分区不能写入数据,只能包含逻辑分区。
2024-02-11 11:00:18
1255
原创 Linux用户和文件权限管理
比如如下文件1.txt,'-'表示其为文件类型,'rw-'表示root用户拥有读写权限,第一个'r--'表示root组的用户拥有。# 为文件夹里面所有子文件夹和文件 所属`主用户`,`用户组`和`其它用户`开放所有权限(-R表示递归所有子文件夹和文件)# 为文件所属`主用户`减少执行权限,文件所属`其它用户`添加执行权限。(1)直接将1.txt `其它用户拥有的权限`设置为`rw-`# 为文件所属`主用户`,`用户组`和`其它用户`开放所有权限。解决权限不足的问题,还可以直接通过开放`文件权限`的方式。
2024-02-08 10:03:51
2156
原创 Vue3开发环境搭建和工程结构(一)
NVM 是 Node Version Manager(Node 版本管理工具)的缩写,是一个命令行工具,用于管理和切换到不同版本的 Node.js。
2024-02-05 21:23:06
1133
原创 流畅的Python(七)-函数装饰器和闭包
主要解释函数的工作原理,包括最简单的和较复杂的。同时,因为装饰器的实现依赖于,因此会首先介绍闭包存在的原因和工作原理。
2024-02-03 22:13:52
462
原创 流畅的Python(六)-使用一等函数实现设计模式
设计模式:可复用面向对象软件的基础》一书中有23个设计模式,其中有16个在动态语言中"不见了或者简化了"。作为动态语言之一的Python, 我们可以利用简化其中的某些设计模式,本章主要介绍如何重构模式(关于何为策略模式,可参考。
2024-01-28 11:15:21
494
原创 流畅的Python(五)- 一等函数
Python函数是一等对象,其满足以下4个条件:1. 在运行时创建2.能赋值给变量或数据结构中的元素3.能作为参数传递给函数4.能作为函数的返回结果。
2024-01-22 20:09:05
736
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人