首页 > 编程语言 >python的描述符(器)是如何工作的?

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

时间:2024-06-23 14:53:21浏览次数:3  
标签:__ name python self 如何 描述符 fobject class

当一个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)

 

标签:__,name,python,self,如何,描述符,fobject,class
From: https://www.cnblogs.com/shunguo/p/18263457

相关文章

  • python组合数据类型(字典)
          ......
  • Python进阶学习笔记-基础篇
    打印原始字符串print(r"D:\three\two\one\now")D:\three\two\one\now复现随机数importrandomx=random.getstate()print(random.randint(1,10))print(random.randint(1,10))print(random.randint(1,10))random.setstate(x)print(random.randint(1,10))pr......
  • Python进阶学习笔记-函数篇
    函数的特殊参数#/前的参数只能是位置参数,*后面的只能是关键字参数,之间的不限参数类型deffunc(a,b,/,c,*,d,e):print(a,b,c,d,e)func(1,2,3,d=4,e=5)func(1,2,c=3,d=4,e=5)#a,b不能以关键字形式传参,d,e只能以关键字参数传参#可变参数*argsdef......
  • Python进阶学习笔记-面向对象篇
    组合classEngine:"""引擎类,提供基本的引擎功能"""def__init__(self,power):self.power=powerdefstart(self):print(f"引擎启动,功率:{self.power}")classCar:"""汽车类,使用引擎类的功能"&......
  • python组合数据类型(集合)
             ......
  • python组合数据类型(列表)
              ......
  • 【Python机器学习】NMF——将NMF应用于人脸图像
    将NMF应用于之前用过的Wild数据集中的LabeledFaces。NMF的主要参数是我们想要提取的分量个数。通常来说,这个数字要小于输入特征的个数(否则的话,将每个像素作为单独的分量就可以对数据进行解释)。首先,观察分类个数如何影响NMF重建数据的好坏:importmglearn.plotsimportnumpy......
  • python基本语法
              ......
  • 《Python编程:从入门到实践》
    书籍介绍 hi,我是神虚本书是一本针对所有层次的Python读者而作的Python入门书。全书分两部分:第一部分介绍用Python编程所必须了解的基本概念,包括matplotlib、NumPy和Pygal等强大的Python库和工具介绍,以及列表、字典、if语句、类、文件与异常、代码测试等内容;第二部......
  • python---OpenCv(二),背景分离方法较有意思
    目录边界矩形旋转矩形(最小外接矩形):计算轮廓找4个点的坐标把浮点型转为Int画轮廓边界矩形--(最大外接矩形)转灰度找轮廓找顶点画矩形显示背景分离方法(这个很好玩,可以识别在动的物体)边界矩形有两种类型的边界矩形:旋转矩形(最小外接矩形):是用最小面积绘制......