Tricks-in-python
本文最后更新于:2023年6月19日 晚上
装饰器-@classmethod 和@staticmethod
将方法定义成类方法和静态方法。
https://zhuanlan.zhihu.com/p/28010894
可以看看这篇文章
生成器
通过函数方式创建
通过yield关键字将一个函数变成generator。例如:
函数的定义:
1 | |
生成器的定义:
1 | |
两者的差别在于生成器将函数的print(b)改为yield b。yield可以翻译为生成,即基于某次计算生成某个元素,而不是提前存储了该元素。
函数式的generator一般采用for循环来获取元素,也可以通过next()来获取下一个元素的值,例如:
1 | |
如果要获取return的内容,可以捕获StopIteration错误,返回值包含在StopIteration的value中。
1 | |
面向对象编程
访问限制
实例的变量以__xxx双下划线开头,没有以__双下划线结尾的,则该变量为私有变量,外部一般无法访问。例如:self.__name = name。
如果变量名是双下划线开头、双下划线结尾,__xxx__是特殊变量而不是私有变量。私有变量的方式可以避免外部对实例内部数据的修改,可以做参数检查。
如果需要获取或修改内部的数据,可以增加get和set的方法。例如:
1 | |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!