【发布时间】:2020-04-11 21:24:57
【问题描述】:
在一个文件中,我定义了一个类和一个私有函数。我想在一个方法中调用这个函数。引用类的“外部作用域”并告诉 python 我的函数在哪里的语法是什么? (:
不起作用的实际示例:
def __private_function():
pass
class MyClass:
def my_method(self):
__private_function()
错误:NameError: name '_MyClass__private_function' is not defined
铌:
与Calling private function within the same class python 相似但不重复。
【问题讨论】:
-
你试过使用单下划线吗?它将避免名称修改。
-
我不得不说我对这种行为感到非常惊讶:-/ 现在实际上很少有理由使用双前导下划线名称修饰机制,尤其是对于普通函数。约定是使用一个前导下划线来表示“实现”内容(将其视为“受保护”的python等效项)。
标签: python