摘要:魔术方法的解释器遇见魔术方法时会激活一些基本的对象操作方法例如,获取字典的元素,其背后实现的时方法输出了自定义的的内容,说明内部调用了方法构建只要属性没有方法的对象实现自定义对一个对象进行操作,会调用对象的方法和结合使用以下方法均可重写,使
魔术方法 __getitem__
python的解释器遇见魔术方法时会激活一些基本的对象操作方法例如,obj[key]获取obj字典的key元素,其背后实现的时obj.__getitem__(key)方法
In [5]: class Foo: ...: def __init__(self): ...: self.nums = range(10) ...: def __getitem__(self, position): ...: print "input %d" % position ...: return self.nums[position] ...: ...: In [6]: foo = Foo() In [7]: foo[3] input 3 # 输出了自定义的input %d的内容,说明内部调用了__getitem__(key)方法 Out[7]: 3构建只要属性没有方法的对象namedtuple
In [11]: import collections In [12]: User = collections.namedtuple("User",["name","password"]) In [13]: user = User("Admin","123456") In [14]: user.name Out[14]: "Admin" In [15]: user.password Out[15]: "123456"实现自定义len
In [19]: class Foo: ...: def __init__(self): ...: self.nums = range(10) ...: def __len__(self): ...: return len(self.nums) ...: def __getitem__(self, position): ...: print "input %d" % position ...: return self.nums[position] ...: ...: In [20]: foo =Foo() In [21]: len(foo) # 对一个对象进行`len`操作,会调用对象的__len__()方法 Out[21]: 10namedtuple和__getitem__()结合使用
In [28]: class Foo: ...: def __init__(self): ...: self.nums = [User(letter,num) for letter in string.a ...: scii_uppercase for num in range(10)] ...: def __len__(self): ...: return len(self.nums) ...: def __getitem__(self, position): ...: print "input %d" % position ...: return self.nums[position] In [29]: foo = Foo() In [30]: foo.nums[3] Out[30]: User(name="A", password=3) In [35]: from random import choice In [36]: choice(foo) input 163 Out[36]: User(name="Q", password=3) In [37]: choice(foo) input 144 Out[37]: User(name="O", password=4)以下方法均可重写,使得自定义类型变现与内置类型一样的编程风格
:跟运算符无关的特殊方法 字符串 /字节序列表示形式 __repr__、__str__、__format__、__bytes__ 数值转换 __abs__、__bool__、__complex__、__int__、__float__、__hash__、__index__ 集合模拟 __len__、__getitem__、__setitem__、__delitem__、__contains__ 迭代枚举 __iter__、__reversed__、__next__ 可调用模拟 __call__ 上下文管理 __enter__、__exit__ 实例创建和销毁 __new__、__init__、__del__ 属性管理 __getattr__、__getattribute__、__setattr__、__delattr__、__dir__ 属性描述符 __get__、__set__、__delete__ 跟类相关的服务 __prepare__、__instancecheck__、__subclasscheck_ 跟运算符相关的特殊方法 类别 方法名和对应的运算符 一元运算符 __neg__ -、__pos__ +、__abs__ abs() 众多比较运算符 __lt__ <、__le__ <=、__eq__ ==、__ne__ !=、__gt__ >、__ge__ >= 算术运算符 __add__ +、__sub__ -、__mul__ *、__truediv__ /、__floordiv__ //、__mod__ %、__divmod__ divmod()、__pow__ ** 或pow()、__round__ round() 反向算术运算符 __radd__、__rsub__、__rmul__、__rtruediv__、__rfloordiv__、__rmod__、__rdivmod__、__rpow__ 增量赋值算术运算符 __iadd__、__isub__、__imul__、__itruediv__、__ifloordiv__、__imod__、__ipow__ 位运算符 __invert__ ~、__lshift__ <<、__rshift__ >>、__and__ &、__or__ |、__xor__ ^ 反向位运算符 __rlshift__、__rrshift__、__rand__、__rxor__、__ror__增 量赋值位运算符 __ilshift__、__irshift__、__iand__、__ixor__、__ior__
引用《流畅的Python》
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/40869.html
摘要:使用该数据集,我们将构建机器学习模型以使用肿瘤信息来预测肿瘤是恶性的还是良性的。我们将使用函数来确定机器学习分类器的准确性。您已成功构建了第一台机器学习分类器。现在,您可以使用在中加载数据组织数据训练预测和评估机器学习分类器。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由信姜缘 发表于云+社区专栏 介绍 机器学习是计算机科学、人工智能和统计学的研究领域。机器学...
摘要:编程从入门到实践笔记。执行命令后,项目的根目录下会多出一个名为的数据库文件。下面创建一个主题类用户学习的主题返回模型的字符串表示类是中的一个定义了模型基本功能的类。这种交互式环境称为,常用语测试项目和排除故障。 《Python编程:从入门到实践》笔记。从本篇开始将是该书的最后一个项目,将用3篇文章来介绍Django的基础。完成一个学习笔记的小网站。 1. 前言 在本篇中,我们将: 用...
这篇文章的主要目的,是给大家讲解一下,关于python Copula如何进行绘制散点模型的相关实例,具体的代码下面给大家列出来了,有问题的小伙伴,可以仔细的进行阅读下文哦。 一、使用copula生成合成数据集(synthetic dataset) 1.三维数据描述 建立一个三维数据表,查看三维数据的散点图: fromcopulas.datasetsimportsample_trivar...
摘要:本文重点了解数据模型和接口的概念掌握特殊方法的定义,作用和基本用法。一基本概念数据模型是数据特征的抽象,这里是对框架的描述。数据模型规范了自身构建模块的接口,模块包括但不限于序列迭代器函数类和上下文管理器。 导语:本文章记录了本人在学习Python基础之绪论篇的重点知识及个人心得,以加深自己的理解。 本文重点: 1、了解Python数据模型和接口的概念;2、掌握特殊方法的定义,作用和基...
阅读 2730·2021-11-02 14:42
阅读 3132·2021-10-08 10:04
阅读 1155·2019-08-30 15:55
阅读 990·2019-08-30 15:54
阅读 2283·2019-08-30 15:43
阅读 1654·2019-08-29 15:18
阅读 834·2019-08-29 11:11
阅读 2306·2019-08-26 13:52