gpt4 book ai didi

python 不能从静态方法调用模块方法?

转载 作者:太空狗 更新时间:2023-10-30 02:47:03 25 4
gpt4 key购买 nike

考虑以下模式:

'''some module body'''

def __foo():
'''module method foo'''
pass

class Dummy(object):
@staticmethod
def bar():
__foo()

__foo() # No Error.
Dummy.bar() #NameError: Global name "_Dummy__foo" is not defined.

为什么会这样?

--

如果用“__”命名它不好,那么在 Python 中使模块方法仅对内部模块函数/方法可用的最佳实践是什么?

最佳答案

名称不要以双下划线开头。在类语句中找到的任何标识符,以至少 2 个下划线开头并以少于 2 个下划线结尾,都会在其前面加上 _Classname,其中 Classname 是类的名称.这应该为私有(private)变量提供有限的支持,但使用它通常被认为是不好的做法。

关于python 不能从静态方法调用模块方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17480704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com