首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python - 描述

很多时候我们可能需要对某个实例的属性加上除了修改、访问之外的其他处理逻辑,例如 类型检查、数值校验等,就需要用到描述 ---《Python Cookbook》 我们可以使用 Python 自带的 property...描述 Python 有三个特殊方法,__get__、__set__、__delete__,用于覆盖属性的一些默认行为,如果一个类定义了其中一个方法,那么它的实例就是描述 下面是一个简单的描述的示例...,对属性的操作由这个描述来代理 访问: __get__(self, instance, cls) # instance 代表实例本身,cls 表示类本身,使用类直接访问时,instance 为 None...__get__ 和 __set__ 那么就是资料描述 data descriptor 它们的区别在于,如果实例字典中有与描述同名的属性,如果是资料描述,则优先使用资料描述,否则使用实例字典中的属性...a 忽略了实例字典的值,而非资料描述则被覆盖 >>> c = C() >>> c.a 'a' >>> c.

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

python高级之描述

Python中,一个类中实现了__get__、__set__、__delete__三个方法中的任何一个方法, 那么这个类就是描述....如果一个类的类属性设置为描述,那么它被称为此描述的owner属主 描述方法何时被触发:     当属主类中对是描述的类属性进行访问时(即类似b.x),__get__方法被触发     当属主类中对是描述的实例属性通过...Python中的描述 描述Python中应用非常广泛 Python的方法(包括staticmethod()和classmethod()) 都实现为非数据描述....号进行生成属性. property()函数实现为一个数据描述.则实例不能使用'.'号进行赋值属性....,给类添加有描述的类属性,再通过描述的方式进行参数检查

37630

Python中反射和描述总结

描述描述定义 在python中,一个类实现了__get__、__set__、__delete__三个方法中的任何一个方法,就是描述。...如果仅实现了__get__,就是非数据描述符non-data descriptor 同时实现了__get__,__set__就是数据描述符 data descriptor 如果一个类的类属性设置为描述实例...,那么它被称为owner属主 属性查找顺序 实例的__dict__优先于非数据描述,数据描述优先于实例的__dict__ 有__delete__方法有同样的效果,有了这个方法,也是数据描述。...描述python中应用非常广泛,python的方法(包括staticmethod()和class method())都实现为非数据描述,因此,实现可以重新定义和覆盖方法。...Python中property()函数实现为一个数据描述

89320

关于python类中继承问题和描述

有句话叫躲得过初一躲不过十五,学习python过程中也有很多坎儿是必须要面对的,不管愿不愿意,都要去尝试,或许几遍都搞不懂,但还是要试,要不然一直没法提升自己。...类里面有好多内容,例如继承、多重继承、封装、描述、属性、上下文管理、委托,装饰等等,还有很多设计模式,这方面是我欠缺比较多的,其他知识还在思考阶段,先玩玩这个吧。...# 使用 super() 函数时,Python 会在 MRO 列表上继续搜索下一个类。...# Descriptor attribute for an integer type-checked attribute class Integer: # 初始化对象的实例名 # 描述可实现大部分...# 描述只能在类级别被定义 # 操作实例底层的字典 (__dict__ 属性) # 描述的 self.name 属性存储了在实例字典中被实际使用到的 key # 描述的 字典值

32220

Python入门之面向对象编程(四)Python描述详解

描述的应用 参考资料 引言 前面python面向对象的文章中我们讲到过,我们可以用@property装饰将方法包装成属性,这样的属性,相比于其他属性有一个优点就是可以在对属性赋值时,进行变量检查...,我们从aa.m开始看 aa.m是aa实例调用了m这个类属性,然而这个类属性不是普通的值,而是一个描述,所以我们从访问这个类属性变成了访问这个描述 如果调用时得到的是一个描述python内部就会自动触发一套使用机制...本节说明访问些方法其实都访问的是描述,并说明它们调用顺序是怎样的,以及类方法和静态方法描述python定义。...在python2中,用类直接调用实例方法得到的是一个unbound method,用实例调用才是一个bound method,(在python3删除了unbound method的概念,改为function...python中这些类的定义是用底层的C语言实现的,为了理解其工作原理,这里展示一个用python语言实现classmethod装饰的方法,(来源),即构建能产生类方法对应描述对象的类。

84270

Python描述符(上)

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

35950

Python描述

2、属性与__dict__ Python中类有属于自己的字典属性,经过类的实例化的对象也同样有自己的字典属性,__dict__ 1 class Foo(object): 2 x=10 3...,被Foo代理,python解释会发现实例字典中的x属性名与类属性同名,类属性(描述符)会优先覆盖。...当没有set方法,有其他2个任意或所有时,又被称为非数据描述符。至少有get和set,称为数据描述符 4、描述符对象是实例属性     从上述可知描述符对象是类属性。...这涉及到优先级的顺序问题,当解释发现实例字典中有与描述符属性同名的属性时,描述符优先与实例属性,会覆盖掉实例属性。可以通过类字典验证 1 print(Test....6、描述符优先级别顺序 上面已经提到,当无set方法的描述符称为非数据描述符,有set和get为数据描述符。这2者有啥区别?优先级别的大区别!!!

50020

利用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

2.6K30

Python描述符的使用

Python描述符的使用 前言 作为一位python的使用者,你可能使用python有一段时间了,但是对于python中的描述符却未必使用过,接下来是对描述符使用的介绍 场景介绍 为了引入描述符的使用,...price = value book = Product('mybook',6,30) print(book.quantity) 这里的@property和@quantity.setter是两个装饰,...但是当一个类中有更多的属性,很多属性同样需要添加非负数赋值的检查的时候,使用特性这种方式就会显得过于累赘,会有很多的代码重复,也会添加很多装饰,这时就可以使用描述符来解决这个问题。...,它是Product类的类属性 在该例子中,如果执行book.quantity=3,解释会先查找实例属性,发现有quantity属性,但是解释又发现同样有一个类属性是描述符,于是解释最终会选择走描述符这条路...最后,本文是对描述符的使用做了简单的介绍与讲解,如需更加深入了解可以参考《流畅的Python》属性描述符部分 ​

45020

Java描述设计模式(14):解释模式

一、解释模式 1、基础概念 解释模式是对象的行为模式。给定一个语言之后,解释模式可以定义出其文法的一种表示,并同时提供一个解释。客户端可以使用这个解释来解释这个语言中的表达式。...比如解析c=a+b,a和b是终结符,解析a和b的解释就是终结符表达式。...(3)、非终结符表达式 NotTerminalExpress:每一条规则都需要一个具体的非终结符表达式用来衔接,一般是指运算符或者逻辑判断,比如c=a+b,“+"就是非终结符,解析“+”的解释就是一个非终结符表达式...,terminalExpress2), terminalExpress3) .interpret(dataMap)); } } // 解释接口...优点 当有一个表达式或者语言需要解释执行,该场景下的内容可以考虑使用解释模式,使程序具有良好的扩展性。 缺点 解释模式会引起类膨胀,会导致程序执行和调试非常复杂,不容易理解。

47340

Java描述设计模式(13):迭代模式

一、迭代模式 1、基础概念 迭代模式又叫游标模式,是对象的行为模式。迭代模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象。...Client:客户端角色 持有对聚集及其迭代对象的引用,调用迭代对象的迭代接口。...() { return new Itr(); } 三、迭代总结 1、适用场景 迭代模式是与集合绑定,只要使用集合,就需要同时这个集合的迭代,以此遍历集合中的数据,java中的容器对象Collection...容器对象在编程语言中十分核心,所以在实现容器的时候基本都有匹配的迭代,可以满足开发的需要,所以迭代的自定义实践场景比较少。...2、优点总结 简化集合遍历方式,每一个聚集对象都可以有一个或多个迭代对象,每一个迭代的迭代状态可以是彼此独立的。遍历算法被封装在迭代角色里面,因此迭代的算法可以独立于聚集角色变化。

36220

UDP套接字编程——Python语言描述

那么,服务总是在等待客户端的请求。客户端在请求的时候,它会告知目的地址(服务的IP地址和目的进程的端口号)。...下面是服务代码: #python3实现循环无连接服务 #包含socket库 from socket import *; #服务端口 server_port = 8000; #创建套接字,设置Ipv4...,client_address); server_socket.close(); 客户端代码: #python3实现的客户端代码 #包含网络模块 from socket import *; #服务地址以及端口号...总的来说,在使用UDP作为传输层协议的时候,客户端需要知道服务的IP地址和目的端口号。由于UDP是面向无连接的协议,因此,客户端使用sendto函数来发送。...服务也使用sendto函数来发送响应给客户端。recvfrom函数能够接受包,并知晓客户端的地址。

71420

使用Python进行描述性统计

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

3K52

使用Python进行描述性统计

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

2.5K70

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

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

6110
领券