国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > Python描述符中有哪三种方法?

Python描述符中有哪三种方法?

头像

小妮浅浅

2021-02-20 14:47:214115浏览 · 0收藏 · 0评论

我们在对描述符有了初步认识后,那么对于其中方法的使用,也是学习描述符阶段的必备路线。本篇所要讲述的是三种方法__get__(),__set__(),和__delete__()。这里要区别于我们所学习的函数,有下划线的表示为一种特殊方法。下面我们就Python描述符中的三种方法带来详解。

1、方法说明

一般来说,描述符是带有“绑定行为”的对象属性,它的属性访问已经被描述符协议中的方法覆盖了。这些方法是__get__(),__set__(),和__delete__().

其中instance的参数表示实例化的对象,owner代表实例属于的类。

描述符必须定义在类属性中,而不能定义在构造函数中。

2、实例

object.__get__(self,instance,owner)

object.__set__(self,instance,value)

object.__delete__(self,instance)

上面的参数里,self 都是指描述符本身,owner 是包含描述符为某个属性的那个对象,instance 是 owner 的实例。这些参数由解释器自动传递,没有就传 None。函数体由用户自定义,此处可以妥善使用三个参数(self, instance, owner)。由于这里的描述符是 owner 的类属性,所以如果你使用 self.xxx 来存储属性值的话,这个属性也会被存成类属性,即你所有的实例都将访问同一个描述符:

class Descriptor(object):
 
    def __init__(self):
        self.d_name = ''
 
    def __get__(self, instance, owner):
        return self.d_name
 
    def __set__(self, instance, name):
        self.d_name = name.title()
 
    def __delete__(self, instance):
        del self.d_name
 
class Person(object):
    name = Descriptor()

这里我们使用描述符的方式,是保存一个字符串,并把首字母大写,实际描述符可以做得更多。运行如下:

>>> a = Person()
>>> a.name = 'adam'
>>> a.name
'Adam'
>>> b = Person()
>>> b.name
'Adam'

这就是问题所在,如果想把描述符用作实例属性而不是类属性的话,使用 instance 参数代替 self 就好了。

以上就是Python描述符中的三种方法,在了解基本的使用后,可以对不同的方法做一个练习,以便更好的熟悉这些描述符中的方法。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

女人大阴屑夹缝是明虚还是阳虚| 一晚上12次干到都没水了| -区二三国产好的精华液品牌介绍| 电影《爱痴癫》| 妈妈装睡配合孩子阴阳调和| 欧美黑人狂躁日本妞| 交换朋友的老婆2中字谜给看| 老师穿白色双开真丝旗袍怎么穿| 女人什么姿势下面最紧| 五姑娘影院在线观看免费版电视剧| 三飞母姐妹花女儿的小说| BOBO浏览器| 星空无限MV国产剧入选精彩| 内衣秀| 《温柔的大姐姐》动漫免费观看| 女性摇床和喘气声音哪个更伤身体| 台球室的特殊待遇2HD| 美女被咬小头头视频大全图片| 蜜桃成时熟2| 人狗大战6免费观看正版| 儿媳婉柔和父亲王大川的背景故事 | 添女人荫蒂全部过程AV视频| 初中生兄弟互相导管立的经历| 《从上司到妻子》动画结局| 日本《暴力强伦轩》| 向日葵在线观看免费高清电视剧| 性做爰全过程免费看| 吃爸爸大吉吧父子原文出处| 宝宝用力嗯脚翘起来怎么回事| 亚洲乱熟女-区二区三区山口珠理| 九九在线观看免费播放大全电视剧| 大雷| 免费观看B站刺激战场2023| 《请好好疼爱里面》免费观看 | 扌暴辶鬲的短文| 妈妈叫我戴上避孕套英文| 人狗大战2免费观看正版| 甜蜜惩罚~我是看守专用宠物| 《男医生的特殊治疗》| 按摩3-4| 倩女幽魂甲士