python - python中的静态方法与模块函数

标签 python global static-methods

所以我在一个模块中有一个类,它有一些静态方法。这些静态方法中有几个只是做 crc 检查和其他事情,它们在类之外并不是很有用(我只是让它们在 java 或 C++ 中成为私有(private)静态方法)。我想知道我是否应该让它们成为全局类函数(在类之外)。

这两种方式都有什么好处吗?该类由 from module import class 导入,所以我不担心这些模块也会被引入。但是我是否应该让它们成为类方法,以便 from module import * 更安全或其他什么?

最佳答案

在函数名称前加上一个下划线是一种惯例,表明它们是私有(private)的,而且它还会防止它们被 from module import * 导入。

另一种技术是指定 __all__在模块中列出 - 这可以在模块本身中完成(您不需要 __init__.py 文件)

__all__ = ['my_class_name']

这更像是一种白名单方法,因此您可以完全控制导入的内容,而无需使用前导下划线。

因此,除非您的方法在逻辑上属于该类,而根据您的描述,它们不属于该类,否则我会将它们保留为模块级函数,并使用这两种方法中的一种将它们设为私有(private)。

关于python - python中的静态方法与模块函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570823/

相关文章:

python - 如何动态定义 `typing.Union`?

c# - 在 UserControl 库中使用全局 ResourceDictionary

Python httplib 和 POST

python - 在 Python 中使用循环创建交替字典

python - 模块中类的方法看不到我的全局变量()

c++ - 我应该从静态成员方法返回什么类型的指针

java - 静态方法与应用于示例的实例方法

c++ - 静态函数与 const 函数

python - 计算重复值、删除重复项并保留计数和其他列

javascript - 与 'undefined` 的比较是否仍然进行全局范围查找?