python的描述符(器)是如何工作的?

news/2024/9/23 6:32:34

当一个class 中定义了__get__, __set__, __delete__三个函数中的任意一个,那么这个class就可以被成为描述符。当在python中使用点 . 来调用某个属性的时候,其load attr的顺序如下图所示。

 

 

 

 关于描述符中instance 和owner的解释

 

 

 

class Name:def __get__(self, instance, owner):return "peter"def __set__(self, instance, value):print("this is set function")class f:name = Name()def __init__(self):pass# self.name = "alice"

fobject = f()
print(fobject.name)
fobject.name = "tom"
print(fobject.name)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/46852.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

jenkins连接k8s

目录Jenkins连接k8s集群1. Kubernetes插件简介2. Kubernetes插件使用2.1 kubernetes的连接参数3. 测试4. 错误原因 Jenkins连接k8s集群默认Jenkins是有2个执行器的,我们也可以通过增加节点的方式去让他拥有更多的执行器,连接固定节点的方法比较简单,按照他的步骤一步步来就好…

软件工程 期末总结博客作业

0 公开可看的成果展示 leango alpha阶段燃尽图 2038_online仓库地址 软件工程初期的代码精读结对作业 小米便签之AS的部署 1 回顾 1.1 对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么? 达成期待的:在之前系统学习Java和数据库的知…

配置LVGL第三方库

配置lvgl Freetype笔记lvgl配置第三方库 笔记参考https://www.yuque.com/u43845933/turba0/bss25a9opqbpdd7v?singleDoc# FreeType显示字体 https://note.youdao.com/ynoteshare/index.html?id=467a679111bf419a973b132ec20a4868&type=notebook&_time=1718770399900#…

inode and vnode

文件系统格式 windows: FAT, NTFS; Linux: ext, ext1/2/3/4, xfs; 网络: NFS, SMB(samba SMB/CIFS) 云: VFS: Linux & Mac OS 在文件系统之上虚拟出一层文件系统,Virtual FS; POSIX: portable operating systerm interface of Unix. 来自用户进程的调用都通过POSIX…