我是一名编程新手,当我想要将硬编码函数的名称转换为字符串时,我查找了相关信息并开始使用内置的
以下是一些重现我的错误的代码:
我收到了这个错误信息:
当我把静态方法放入列表中并尝试从列表中获取函数名称时,为什么会失败呢?如果我的问题很愚蠢,请原谅我。显然,我不理解 __name__ 的工作原理(还有其他一些我甚至不知道如何命名的东西!)。回答是好的,但也欢迎提供一些文档参考。
__name__
函数。问题在于,我不确定__name__
如何检索所需的名称。我知道它与当前可见的local()或dir()有关,但仅此而已......(我自己对这个主题的研究对我来说有点难以理解)因此,我遇到了一个错误,我不知道如何解决。以下是一些重现我的错误的代码:
class Abc:
@staticmethod
def my_static_func():
return
def my_method(self):
return
class_list = [my_static_func]
method_list = [my_method]
#These calls work
Abc.my_static_func.__name__
Abc.my_method.__name__
Abc.method_list[0].__name__
#But This call raises an AttributeError
Abc.class_list[0].__name__
我收到了这个错误信息:
AttributeError: 'staticmethod' object has no attribute '__name__'
当我把静态方法放入列表中并尝试从列表中获取函数名称时,为什么会失败呢?如果我的问题很愚蠢,请原谅我。显然,我不理解 __name__ 的工作原理(还有其他一些我甚至不知道如何命名的东西!)。回答是好的,但也欢迎提供一些文档参考。