Python静态方法无法访问成员/类变量

时间:2019-09-12 03:46:21

标签: python namespaces static-methods

请在下面查看我的代码片段。 * NO. : will be ProperCase * ABC-123 : copy the original string get_simple_percentiles可以访问get_simple_percentile。但是,simple_lut.__simple_lut_dict无法访问get_another_percentile。该文件的名称为simple_lut.__another_lut

simple_lut.py

1 个答案:

答案 0 :(得分:1)

您只能在实例上分配属性,而不是在类上分配

self.__another_lut = tmp_dict

该类仍然具有最初分配的None值。要么分配给类,要么在实例上使用常规方法。

simple_lut.__another_lut = tmp_dict

赋值在实例上创建一个新属性,而类上的属性(和值)保持不变。由于类看不到实例属性,因此只能访问原始类属性。修改属性会直接更改其值,而无需在顶部添加新的实例属性。


请注意,您当前的方法(初始化类,而不是实例)并不常见,并且会破坏实例的预期行为。考虑使用没有静态数据的实例,或者根本不使用类,而只使用模块。