![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
*lin=nullptr
这个作者很懒,什么都没留下…
展开
-
什么是虚拟子类,抽象基类的原理
测试样本取自 <流畅的python>先来了解抽象基类import abcclass Tombole(abc.ABC): @abc.abstractmethod def pick(self): ''' 随机删除元素,然后将其返回 ''' @abc.abstractmethod def load...原创 2019-07-17 10:29:30 · 252 阅读 · 0 评论 -
yield from 的特性
yield from 的嵌套用法# 字符串astr='ABC'# 列表alist=[1,2,3]# 字典adict={"name":"wangbm","age":18}# 生成器agen=(i for i in range(4,8))def gen(*args, **kw): for item in args: yield from itemne...原创 2019-07-29 21:50:56 · 105 阅读 · 0 评论 -
python 异常处理层次结构
内置异常处理层次结构以下是来自官方文档的总结,便于查看记忆BaseException +-- SystemExit sys.exit()引发,无任何提示 +-- KeyboardInterrupt ctrl+c 中断命令引发 +-- GeneratorExit 当一个generator或coroutine被关闭时将被引发 +-- Exception 非系统退出类 ...原创 2019-07-25 20:25:40 · 226 阅读 · 0 评论 -
重构tips
永远不要让函数使用全局变量,或者是非自身区域的变量。要么使用嵌套函数声明,很多语言不支持。要么就干脆不要使用全局变量。尽量不要让一个函数超过6行函数名长度并不重要,重要的是是否能够表达其用途。关于长函数与短函数的性能问题在《编程珠玑》中,大量的篇幅在介绍for循环、函数的寻址会造成1/3性能的开销,并建议在性能要求很高的程序中应该使用循环展开、line的技巧,或是自动化编译器优化来提升...原创 2019-08-08 01:11:18 · 134 阅读 · 0 评论 -
默认参数的一些bug
类初始化函数中的默认参数bug默认参数如果是不可变类型, 比如基础数据类型 int str 和不可变 tuple等, 这些是不会出bug的, 而用到可变默认参数, 就会出现幽灵般的bug, 看下面代码class HauntedBus: def __init__(self, passengers = []): self.passengers = passengers...原创 2019-07-14 09:45:58 · 131 阅读 · 0 评论 -
python的装饰器原理
让人迷惑的导入运行registry = []def register(func): print('running register{0}'.format(func)) registry.append(func) return func@registerdef f1(): print('running f1')def f2(): prin...原创 2019-07-10 06:05:32 · 290 阅读 · 0 评论 -
笔记 html
html的构架注释语法&amp;amp;amp;amp;lt;!--注释内容--&amp;amp;amp;amp;gt; #为了简单用python语法做笔记,快捷键时ctrl+?构架内容#声明文档,告诉浏览器html版本,以及怎么解析&amp;amp;amp;amp;lt;!doctype html&amp;amp;amp;amp;gt;&amp;amp;amp;amp;lt;html&amp;a原创 2018-12-13 05:18:54 · 109 阅读 · 0 评论 -
python list的深复制与浅复制思考
a = [['_']*3 for i in range(3)]a[1][2] = 1print(a)b = [['_']*3]*3b[1][2] = 1print(b)c = []for i in range(3): row = ['_']*3 c.append(row)c[1][2] = 1print(c)d = []row = ['_']*3for...原创 2018-12-28 18:35:17 · 236 阅读 · 0 评论 -
python 程序优化字典(自用)
这篇文章用来做&amp;amp;amp;amp;amp;amp;amp;lt;流畅的python&amp;amp;amp;amp;amp;amp;amp;gt;体验备忘录,也作为日后开发的优化字典实用快速的创建一个只有简单的属性的class#class名为 name ,属性有 a, bimport collectionsName = collections.namedtuple( 'Name' , ['a' , 'b'])静态方法的创建与使用#静态方法就原创 2018-12-30 05:10:26 · 625 阅读 · 0 评论 -
python 格式互相转换备忘录
str与bytes之间的转换str转换为bytes: encode()bytes转换成str: decode()str与josn的微妙关系在方法返回值是str的方法中,实际上返回的是josn的情况很多,有可能str是josn的基类的原因.josn转换为str: josn.loads(josn_data)...原创 2019-01-01 08:53:45 · 167 阅读 · 0 评论 -
python中的编码问题
内置的编码函数 encode ; decode内置的编码函数是用做字符串与指定编码互相转换的函数, 如用type()方法来输出, 则是"str" ,“bytes” . encode(encoding=“utf-8”), 用来对 "str"进行编码至 “bytes” , decode(encoding=“utf-8”), 用来对 "bytes"进行解码至 “str”codecs模块中的...原创 2019-02-11 11:30:31 · 186 阅读 · 0 评论 -
python 类中的特殊方法
lenclass name: self.list = [ ] def __len__() return len(list)'''len()方法的默认参数是序列, 然而如果一个类并不是序列类型的话, len(class) 就会隐式调用 class.__len__(), 所以对于自定义类, 想要使用python一致性的 len()方法的话, 要自定义 class.__len__(...原创 2019-07-04 08:08:54 · 160 阅读 · 0 评论 -
tkinter 制作屏保
import randomimport tkinterclass RandomBall(): ''' 定义球的类 ''' def __init__(self, canvas, scrnwidth, scrnheight): #canvas:画布 self.canvas = canvas #圆心坐标 ...原创 2018-12-12 17:44:42 · 315 阅读 · 1 评论