Fal*_*rri 9 python static-methods global
所以我在一个模块中有一个类,它有一些静态方法.其中一些静态方法只是做crc检查和填充,并且它们在类之外并不是真的有用(我只是在java或C++中使它们成为私有静态方法).我想知道我是否应该让它们成为全局类函数(在类之外).
这样做有什么好处吗?这个类正在被导入,from module import class所以我并不担心这些模块也会被引入.但是,我应该让它们成为类方法,以便from module import *更安全吗?
使用单个下划线对函数名称进行前缀是一种惯例,即它们是私有的,并且还会阻止它们使用a导入from module import *.
另一种技术是__all__在模块中指定一个列表 - 这可以在模块本身中完成(您不需要__init__.py文件)
__all__ = ['my_class_name']
Run Code Online (Sandbox Code Playgroud)
这更像是一种白名单方法,因此您可以完全控制导入的内容,而无需使用前导下划线.
因此,除非你的方法在逻辑上属于类,并且从你的描述中没有,我将把它们作为模块级函数,并使用这两种方法之一将它们设为私有.