一.基础知识 “__”前缀:私有属性.方法,在__dict__中存储时被改写为“_类名__”前缀 “_”前缀:是约定俗成的保护属性.方法,不过编译器不会对之采取任何处理 二.class特殊方法介绍 在第9章的双元素基础上,我们扩展为任意元素长度的向量,并探讨了相关方法的使用: __getattr__(self, name): result = obj.name 会调用builtin函数getattr(obj,'name')查找对应属性,如果没有name属性则调用obj.__getattr__('…
一.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…
子类化内置类型的缺点 多重集成和方法解析顺序 tkinter…
由于1~4章内容零散且基础,所以统计一下涉及到的内容,记录一下,方便查阅(第一张图右键新页面打开即可看到清晰大图)…
<Python Cookbook(第3版)中文版> 1.队列queue的有些方法是线程不安全的,在多线程中最好别用 2.需要限制一段代码的并发访问量时,用信号量.不要把信号量当做普通的锁来用,当做普通的锁来用,其性能不如普通的锁 3.个人对阻塞和挂起的理解:阻塞是被动的,是拿不到需要的资源导致的:挂起是主动地,是某个条件不满足自己的要求,于是wait一会 4.为了避免死锁,每个线程一次之获取一个锁:若一定要获取多个锁,你就需要更高级的死锁避免机制,我们将在 12.5 节介绍 5.解决死锁问题的…