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 协议 ,转载请注明出处!