我读过了
由于staticmethod无法访问该类的实例,我不知道它和global function?
什么时候应该使用staticmethod?能举个好例子吗?
与全局函数一样,静态方法不能访问包含类的实例。但它在概念上属于包含类。另一个好处是可以避免名称冲突。
当函数被设计为为某个给定的类服务时,建议将其作为该类的静态方法。这称为凝聚力。另外,如果这个函数没有在外面使用,你可以在它前面加上下划线来标记它为“私有”,这就是所谓的信息隐藏(尽管Python并不真正支持私有方法)。根据经验,尽可能少地暴露接口将使代码更干净,更不容易更改。
即使该函数应该作为跨多个模块的许多类的共享实用程序,但使其成为全局函数仍然不是首选。考虑将其作为某个实用程序类的静态方法,或者使其成为某个专用模块中的全局函数。这样做的一个原因是将类似用途的函数收集到一个公共类或模块中,这对另一个级别的抽象/模块化有好处(对于小项目,有些人可能会认为这是过度工程)。另一个原因是这可能会减少命名空间污染。
| 归档时间: |
|
| 查看次数: |
1493 次 |
| 最近记录: |