由于1~4章内容零散且基础,所以统计一下涉及到的内容,记录一下,方便查阅(第一张图右键新页面打开即可看到清晰大图)…
一.Python风格 以一个二元素向量对象为例 import math from array import array class Vector2d: typecode = 'd' def __init__(self, x, y): self.x = float(x) self.y = float(y) def __iter__(self): # 使得Vector2d变成可迭代对象 # __iter__方法的实现使得本类可以被转化为tuple在内的其他可迭代类 return (i for i i…
一.基础知识 “__”前缀:私有属性.方法,在__dict__中存储时被改写为“_类名__”前缀 “_”前缀:是约定俗成的保护属性.方法,不过编译器不会对之采取任何处理 二.class特殊方法介绍 在第9章的双元素基础上,我们扩展为任意元素长度的向量,并探讨了相关方法的使用: __getattr__(self, name): result = obj.name 会调用builtin函数getattr(obj,'name')查找对应属性,如果没有name属性则调用obj.__getattr__('…
流畅的Python 致Marta,用我全心全意的爱 第一部分 序幕 第一章 Python数据模型 特殊方法 定义: Python解释器碰到特殊句法时,使用特殊方法激活对象的基本操作,例如python语句len(x) 调用了x.__ len __的方法.这些特殊方法支持以下的语言构架: 迭代 集合类 属性访问 运算符重载 函数和方法的调用 对象的创建和销毁 字符串表示形式和格式化 管理上下文(with块) 命名规则: __ getitem __ (左右两个双下划线,故称为dunder method…
Python的数据模型data model, 用户可以创建自定义类型,并且运行起来像内建类型一样自然. 即不是靠继承,而是duck typing. 支持用内建函数来创建可选的对象表现形式.例如repr(), bytes()等.object representation指的是用一个字符串来描述一个对象,例如:<__main__.Myclass object at 0x1040dc6d0> Object Representations Every object-oriented language…