【发布时间】:2022-12-11 11:46:03
【问题描述】:
在python中,在类外调用私有静态方法可以吗?该类来自外部模块,因此我无法将其移出类,但该方法对我很有用。
class Vector:
@staticmethod
def _add(a,b):
return a + b
# is it okay to do:
Vector._add(1,2)
“可以吗”,我指的是良好实践/PEP 指南。
【问题讨论】:
-
@TimRoberts - Python 确实有 Private variables,虽然不是 C++ 的意思。
-
私有方法有几个问题。如果它使用
__双下划线完成,它的名称会与类名混淆,很难通过类继承获得 - 所以你已经减少了多态性。通常,它们不是公共 API 的一部分,实施者可以随意更改它们,恕不另行通知。如果你不介意风险,那就打电话。 -
谢谢@tdelaney 的帮助。