首页
学习
活动
专区
圈层
工具
发布

Python - 描述器

很多时候我们可能需要对某个实例的属性加上除了修改、访问之外的其他处理逻辑,例如 类型检查、数值校验等,就需要用到描述器 ---《Python Cookbook》 我们可以使用 Python 自带的 property...描述器 Python 有三个特殊方法,__get__、__set__、__delete__,用于覆盖属性的一些默认行为,如果一个类定义了其中一个方法,那么它的实例就是描述器 下面是一个简单的描述器的示例...__get__ 方法 是通过 __getattribute__ 调用的,实际上,Python 中访问实例属性时,__getattribute__ 就会被调用,__getattribute__ 会查找整个继承链...__get__ 和 __set__ 那么就是资料描述器 data descriptor 它们的区别在于,如果实例字典中有与描述器同名的属性,如果是资料描述器,则优先使用资料描述器,否则使用实例字典中的属性...元编程 PyCon David beazley Python Descriptor How to Guide

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python描述符(上)

    描述符概念 我觉得要想了解描述符,理解这两个关键字即可。类,托管。 描述符本质上就是一个类,可以将其他类的属性托管给这个类(描述符)。...小试牛刀 类 描述符本质上是个类,那我们定义一个普通的类肯定不是描述符,只要有__get__,__set__,__delete__魔术方法之一的类就是描述符。...托管 我们来举一个简单的例子,来看看怎么把类属性托管给描述符。...,其中有__get__魔术方法;在A类中,我们将描述符赋值给类的x属性,这样x属性就被描述符托管了,当我们访问x属性时,就会触发描述符的get方法。...描述符方法 __get__魔术方法 上面的内容让我们了解了数据描述符,那现在我们再仔细的学习下描述符的各种方法和使用,首先是__get__方法。 触发时间:在访问对象成员属性的时候触发。

    66350

    Python的描述符

    1、描述符的定义  描述符是与特定属性互相绑定的一种协议,通过方法被触发修改属性,这些方法包括__get__(),__set__(),__delete__().将这些方法定义在类中,即可实现描述符...2、属性与__dict__ Python中类有属于自己的字典属性,经过类的实例化的对象也同样有自己的字典属性,__dict__ 1 class Foo(object): 2 x=10 3...,被Foo代理,python解释器会发现实例字典中的x属性名与类属性同名,类属性(描述符)会优先覆盖。...当没有set方法,有其他2个任意或所有时,又被称为非数据描述符。至少有get和set,称为数据描述符 4、描述符对象是实例属性     从上述可知描述符对象是类属性。...6、描述符优先级别顺序 上面已经提到,当无set方法的描述符称为非数据描述符,有set和get为数据描述符。这2者有啥区别?优先级别的大区别!!!

    86120

    python高级之描述器

    Python中,一个类中实现了__get__、__set__、__delete__三个方法中的任何一个方法, 那么这个类就是描述器....如果仅实现了__get__,就是非数据描述符 non-data descriptor 同时实现了除__get__以外的__set__或__delete__方法,就是数据描述符 data descriptor...如果一个类的类属性设置为描述器,那么它被称为此描述器的owner属主 描述器方法何时被触发:     当属主类中对是描述器的类属性进行访问时(即类似b.x),__get__方法被触发     当属主类中对是描述器的实例属性通过...Python中的描述器 描述器在Python中应用非常广泛 Python的方法(包括staticmethod()和classmethod()) 都实现为非数据描述器....,给类添加有描述器的类属性,再通过描述器的方式进行参数检查

    65530

    利用Python进行描述统计

    引言:在数据分析时,对大量信息进行归纳是最基本的任务,而这就需要用到描述统计方法。...描述统计方法 描述统计的目标是总结、提炼数据,一共有3种方法:制表法、绘图法和数值法,根据变量类型的不同,描述方法也会有所不同。...均值 与总体相关的描述统计量一般用希腊字母表示,而与样本相关的一般用英文字母表示。 均值容易受异常值的影响,所以一般跟财富相关的指标,都不适合采用均值,因为财务情况一般都是符合二八定律的。...利用Python进行统计描述 绘图法:Matplotlib 用Python绘制条形图 # 导入需要用到的库 import numpy as np import pandas as pd import matplotlib.pyplot...'Cat2', 'Cat3', 'Cat4', 'Cat5'] y = [5, 4, 8, 12, 7] # 用 Matplotlib 画条形图 plt.bar(x, y) plt.show() 用Python

    3.4K30

    Python描述符的使用

    Python描述符的使用 前言 作为一位python的使用者,你可能使用python有一段时间了,但是对于python中的描述符却未必使用过,接下来是对描述符使用的介绍 场景介绍 为了引入描述符的使用,...使用描述符 首先看一下描述符的概念 描述符就是一个“绑定行为“的对象属性,在描述符协议中,它可以通过方法充写属性的访问。...然后因为是描述符,于是会执行描述符中的set特殊方法。...对于数据描述符与非数据描述符,一个类,如果只定义了 get() 方法,而没有定义 set(), delete() 方法,则认为是非数据描述符; 反之,则成为数据描述符。...最后,本文是对描述符的使用做了简单的介绍与讲解,如需更加深入了解可以参考《流畅的Python》属性描述符部分 ​

    77720

    使用Python进行描述性统计

    目录 1 描述性统计是什么?...描述性统计是借助图表或者总结性的数值来描述数据的统计手段。数据挖掘工作的数据分析阶段,我们可借助描述性统计来描绘或总结数据的基本情况,一来可以梳理自己的思维,二来可以更好地向他人展示数据分析结果。...---- 2 使用NumPy和SciPy进行数值分析 2.1 基本概念   与Python中原生的List类型不同,Numpy中用ndarray类型来描述一组数据: 1 from numpy import...散点图可用来对两组数据的关系进行描述。在没有分析目标时,需要对数据进行探索性的分析,箱形图将帮助我们完成这一任务。   ...但是由于简单,对多元变量的关系难以描述。现实生活中,自变量通常是多元的:决定体重不仅有身高,还有饮食习惯,肥胖基因等等因素。

    3.9K52

    Python进阶——什么是描述符?

    在 Python 开发中,你可能听说过「描述符」这个概念,由于我们很少直接使用它,所以大部分开发人员并不了解它的原理。...但作为熟练使用 Python,想要进阶的你,建议还是了解一下描述符的原理,这也便于你更深层次地理解 Python 的设计思想。...其实,我们也可以直接利用 Python 描述符的特性来实现这些装饰器, property 的 Python 版实现: class property: def __init__(self, fget...由此可见,通过描述符我们可以实现强大而灵活的属性管理功能,对于一些要求属性控制比较复杂的场景,我们可以选择用描述符来实现。 总结 这篇文章我们主要讲了 Python 描述符的工作原理。...Python 描述符提供了强大的属性访问控制功能,我们可以在需要对属性进行复杂控制的场景中去使用它。

    76830

    python数据分析——业务数据描述

    前言 业务数据描述将从统计学角度来分析这指标。利用统计方法,数据分析人员可以通过相应统计模型开展数据分析。...首先,业务数据描述包括销售数据、客户数据、市场数据等多个方面。销售数据反映了企业产品或服务的市场表现,包括销售额、销售增长率、销售渠道效果等。...最后,业务数据描述还需要与企业的战略目标相结合。企业需要根据自身的业务特点和市场定位,制定符合自身发展的战略目标。业务数据描述应该服务于这些目标,提供决策支持和数据依据。...总之,业务数据描述是企业决策的重要依据。通过对业务数据的深入分析和理解,企业可以更准确地把握市场脉搏,优化运营策略,实现更高效的资源配置和更快速的业务增长。...一般的数据分析我们可以通过Excel电子表格工具完成,而高级的数据分析就要采用专业的Python编程进行了。

    61410

    使用Python进行描述性统计

    【目录】 1 描述性统计是什么?...描述性统计是借助图表或者总结性的数值来描述数据的统计手段。数据挖掘工作的数据分析阶段,我们可借助描述性统计来描绘或总结数据的基本情况,一来可以梳理自己的思维,二来可以更好地向他人展示数据分析结果。...2 使用NumPy和SciPy进行数值分析 2.1 基本概念   与Python中原生的List类型不同,Numpy中用ndarray类型来描述一组数据: 1 from numpy import array...散点图可用来对两组数据的关系进行描述。在没有分析目标时,需要对数据进行探索性的分析,箱形图将帮助我们完成这一任务。   ...但是由于简单,对多元变量的关系难以描述。现实生活中,自变量通常是多元的:决定体重不仅有身高,还有饮食习惯,肥胖基因等等因素。

    3.2K70

    Python学习的自我理解和想法(3)

    今天是学Python的第三天,学的内容依然是字符串。...),(默认是空格) 自我理解:去除不好看见空格的绝妙选择. (3).去除右边的指定字符 语法:str.rstrip(去除的字符),(默认是空格) 自我理解:去除不好看见空格的绝妙选择....注:本例和下例在一起 2.字符串的分割 语法:str.silpt(字符),(默认是空格) 自我理解:拆分字符串. 3.字符串的合并 语法:a.join(b) [a=用什么连接,b连接的字符串] 自我理解...() 自我理解:对于一些分不清1和 l 等问题的输入法的绝妙检查办法. (4).检测字符串中的字母开头是否全都是大写 语法:str.istitle() 自我理解:对于一大段文章检查的绝妙检查办法. (5...总结 这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!

    21900

    Python学习的自我理解和想法(16)

    今天是学Python的第16天,从今天开始,每天一到两个常用模块,更完恢复到原来的。开学了,时间不多,写得不多,见谅。...(年、月、日、小时、分钟、秒、一年中的第几周、一年中的第几天) 语法:time.localtime() 自我理解:最全时间. (4).让程序暂停n秒后再执行 语法:time.sleep(n) 自我理解...数据分析方向 1.numpy 2.scrapy 3.pandas (3).文本 1.jieba 2.PDFminer 3.OpenPyXL 4.python-docx...Cocos2d (9)图像 PIC (10)数字计算 Sympy (11)自然语言处理 NLTK (12)微信机器人框架 WeRoBot (13)二维码MyQR 4.自定义模块 概念:模块的本质就是一个python...总结 这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!

    29010
    领券