很多时候我们可能需要对某个实例的属性加上除了修改、访问之外的其他处理逻辑,例如 类型检查、数值校验等,就需要用到描述器 ---《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
数值校验等,就需要用到描述器 《Python Cookbook》 即描述器主要用来接管对实例变量的操作。...我们可以利用Python的内部机制获取和设置属性值。...Getter和Setter这种设计模式不够Pythonic,虽然在C++和JAVA中很常见,但是Python追求的是简介,追求的是能够直接访问。...__dict__['val'] = 5 A().val # 返回3 附2、描述器机制分析资料: 官方文档-descriptor understanding-get-and-set-and-python-descriptors...anyisalin - Python - 描述器 Python描述器引导(翻译) Properties and Descriptors
描述符概念 我觉得要想了解描述符,理解这两个关键字即可。类,托管。 描述符本质上就是一个类,可以将其他类的属性托管给这个类(描述符)。...小试牛刀 类 描述符本质上是个类,那我们定义一个普通的类肯定不是描述符,只要有__get__,__set__,__delete__魔术方法之一的类就是描述符。...托管 我们来举一个简单的例子,来看看怎么把类属性托管给描述符。...,其中有__get__魔术方法;在A类中,我们将描述符赋值给类的x属性,这样x属性就被描述符托管了,当我们访问x属性时,就会触发描述符的get方法。...描述符方法 __get__魔术方法 上面的内容让我们了解了数据描述符,那现在我们再仔细的学习下描述符的各种方法和使用,首先是__get__方法。 触发时间:在访问对象成员属性的时候触发。
描述性统计是数学统计分析里的一种方法,通过这种统计方法,能分析出数据整体状况以及数据间的关联。...在这部分里,将用股票数据为样本,以matplotlib类为可视化工具,讲述描述性统计里常用指标的计算方法和含义。...本文出自我写的书: Python爬虫、数据分析与可视化:工具详解与案例实战,https://item.jd.com/10023983398756.html ? ?
覆盖型与非覆盖型描述符对比 4.1 覆盖型描述符 4.2 没有 `__get__` 方法的覆盖型描述符 4.3 非覆盖型描述符 4.4 在类中覆盖描述符 5....描述符用法建议 learn from 《流畅的python》 1....类实现了完整的描述符协议 实现了 __get__、__set__ 或 __delete__ 方法的类是描述符。...——管理 数据属性 这种描述符也叫覆盖型描述符,因为描述符的 __set__ 方法使用托管实例中的同名属性覆盖(即插手接管)了要设置的属性 4....) # 9 4.3 非覆盖型描述符 没有实现 __set__ 方法的描述符是 非覆盖 型描述符。
Python中,一个类中实现了__get__、__set__、__delete__三个方法中的任何一个方法, 那么这个类就是描述器....如果仅实现了__get__,就是非数据描述符 non-data descriptor 同时实现了除__get__以外的__set__或__delete__方法,就是数据描述符 data descriptor...如果一个类的类属性设置为描述器,那么它被称为此描述器的owner属主 描述器方法何时被触发: 当属主类中对是描述器的类属性进行访问时(即类似b.x),__get__方法被触发 当属主类中对是描述器的实例属性通过...Python中的描述器 描述器在Python中应用非常广泛 Python的方法(包括staticmethod()和classmethod()) 都实现为非数据描述器....,给类添加有描述器的类属性,再通过描述器的方式进行参数检查
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者有啥区别?优先级别的大区别!!!
前言 上节课我们讲解了描述符的概念和使用,其实,除了上次定义类(__get__,__set__,__delete__)这种描述符方式外,还有其他两种设置描述符的方式,这节课我们就来一起学习吧。
引言:在数据分析时,对大量信息进行归纳是最基本的任务,而这就需要用到描述统计方法。...描述统计方法 描述统计的目标是总结、提炼数据,一共有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
Python描述符的使用 前言 作为一位python的使用者,你可能使用python有一段时间了,但是对于python中的描述符却未必使用过,接下来是对描述符使用的介绍 场景介绍 为了引入描述符的使用,...使用描述符 首先看一下描述符的概念 描述符就是一个“绑定行为“的对象属性,在描述符协议中,它可以通过方法充写属性的访问。...然后因为是描述符,于是会执行描述符中的set特殊方法。...对于数据描述符与非数据描述符,一个类,如果只定义了 get() 方法,而没有定义 set(), delete() 方法,则认为是非数据描述符; 反之,则成为数据描述符。...最后,本文是对描述符的使用做了简单的介绍与讲解,如需更加深入了解可以参考《流畅的Python》属性描述符部分
今天是学Python的第12天,学的内容是函数。开学了,时间不多,写得不多,见谅。 1.回调函数 (1).定义 回调函数是一种将一个函数作为参数传递给另一个函数,并在特定条件下被调用的编程模式。...外部的函数叫外函数,内部的函数叫内函数,如果在一个外部函数中定义了一个内部函数,并且外部函数的返回值是内部函数,就构成了一个闭包,则这个内部函数就称为闭包. (3).最简单的闭包函数 (4).闭包小练习 自我理解...这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
今天是学Python的第19天,学的内容是面向对象。开学了,时间不多,写得不多,见谅。...[一般写法为 class Person(object)] 2.python中的面向对象可以实现多继承....推荐) 对象也可以调用静态方法; 3.静态方法中的形参中没有cls,在静态方法中不建议使用(类属性,类方法,静态方法); 4.静态方法一般是一个单独的方法,只是写在类中. (3).两者区别 自我理解...总结 这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
今天是学Python的第28天,学的内容是冒泡排序。这是前面漏的一个知识点,开学了,时间不多,写得不多,见谅。...在这篇详尽的博客中,我们将对 Python 中的冒泡排序进行全方位的解读,从基本原理到代码实现,再到性能分析以及实际应用场景,力求让您对冒泡排序有一个透彻的理解。...4.Python 实现冒泡排序的多种方式 (1).普通版 nums = [6,5,3,1,8,7,2,4] i = 0 while i < len(nums) - 1: i += 1 n...总结 通过这篇博客,我们对 Python 中的冒泡排序进行了全面而深入的研究。从它的起源与概念出发,详细剖析了其工作原理和多种实现方式,包括基本实现方式、优化实现方式以及可视化实现方式。...这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
今天是学Python的第26天,学的内容是运用Python在Word中插入列表和表格,以及读取docx文件。开学了,时间不多,写得不多,见谅。.../pycharm测试文件/test70附件-插入表格.docx') (7).结果 (8).其他表格样式 python-docx提供了一些内置的表格样式,可以通过属性table.style来设置....库,我们可以轻松地在Python中操作 Word 文档,插入列表和表格等内容。...同时,python-docx库还有很多其他的功能,如设置段落格式、添加页眉页脚等。大家可以参考官方文档来了解更多的用法。...这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
今天是学Python的第四天,学的内容是列表。 1.列表入门 自我理解:列表是一种可变序列类型,可以一次性保存多个数据,可以存储任意类型的元素,包括数字、字符串、对象等。...(4).内置方法丰富 Python 为列表提供了丰富的内置方法,使得可以方便地对列表进行操作。...2.遍历列表 自我理解:将列表中的数据挨个输出. 3.合并列表 语法:list1 + list2 自我理解:先输出前面列表,再输出后面列表. 4.判断元素是否在列表中 语法:xx in list,返回值为布尔类型...,多与if语句判断结合使用 自我理解:与字符串很像. 5.列表的切片 语法:列表[start:end:step] 自我理解:与字符串很像,很好理解. 6.列表添加元素 (1).向列表的尾部添加元素 语法...这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。 1.集合入门 语法:{ } 自我理解:是一种非常有用的数据结构,它具有一些独特的特性和功能。...在这篇博客中,我们将深入探讨 Python 中的集合,包括其定义、特点、操作以及实际应用场景,并突出关键要点。...而且它和数学中的集合比较相似,都有无序性,不可重复性. 2.集合注意 理解:不能通过下标来获得集合的元素. 3.获取集合长度 语法:len(set) 自我理解:长度为内含元素数量. 4.添加元素 (1)...自我理解:感觉和列表一样,不是很难理解. 7.集合计算 (1).并集(Union) 使用|运算符或union()方法可以计算两个集合的并集,即包含两个集合中所有元素的集合。...通过深入理解和掌握集合的特点和操作,我们可以在 Python 编程中更加高效地处理数据集合,解决各种实际问题。 这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
今天是学Python的第6天,学的内容是字典。开学了,时间不多,写得不多,见谅。 1.字典入门 语法:{key:value,key1:value1,key2:value2....}...自我理解:一种可变的、无序的容器数据类型,用于存储键值对(key-value pairs)。...:感觉和上面的没什么区别(不存在时除外) 3.修改元素 自我理解:单拎出来重新赋值. 4.添加元素 自我理解:单拎出来,有这个key就是修改,没有就是添加. 5.删除元素 (1).删除任意元素 语法:dict.pop...("要删除元素的key") (2).删除字典中的最后一对key和value 语法:dict.popitem() (3).清空字典 语法:dict.clear() 自我理解:和列表一样的清空函数. 6....总结 这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
今天是学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的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
今天是学Python的第25天,学的内容是python对docx的操作。开学了,时间不多,写得不多,见谅。 1.插件安装 在使用docx库之前,我们需要先安装它。...可以通过以下命令使用pip进行安装 pip install python-docx 2.写一个word文档 (1).创建一个新的 Word 文档 语法:docx.Document() import...",level=1) # 添加段落 p = document.add_paragraph("python是一门目前非常流行的语音") run = p.add_run("非常棒") run.bold =.../pycharm测试文件/test65附件-快快乐乐学python.docx") (9).结果 (10).注意 设置样式时,要通过段落对象的runs属性来设置字体样式。...可以说,docx 库为我们在 Python 环境下处理 Word 文档提供了一个功能强大且极为实用的工具,它极大地助力我们更加高效、精准地完成各种各样与 Word 文档处理相关的任务。
今天是学Python的第三天,学的内容依然是字符串。...),(默认是空格) 自我理解:去除不好看见空格的绝妙选择. (3).去除右边的指定字符 语法:str.rstrip(去除的字符),(默认是空格) 自我理解:去除不好看见空格的绝妙选择....注:本例和下例在一起 2.字符串的分割 语法:str.silpt(字符),(默认是空格) 自我理解:拆分字符串. 3.字符串的合并 语法:a.join(b) [a=用什么连接,b连接的字符串] 自我理解...() 自我理解:对于一些分不清1和 l 等问题的输入法的绝妙检查办法. (4).检测字符串中的字母开头是否全都是大写 语法:str.istitle() 自我理解:对于一大段文章检查的绝妙检查办法. (5...总结 这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!
领取专属 10元无门槛券
手把手带您无忧上云