python - 如何获取动态创建的方法的名称

标签 python python-2.7

我有一个方法返回它自己的名字。该方法如下所示:

import inspect
class example(object):
    def getvalue(self):
        return inspect.stack()[0][3]   #returns current method's name

现在我正在像这样在该示例类中动态地创建一个方法。

import inspect
class example(object):
    def getvalue(self):
        return inspect.stack()[0][3]   #returns current method's name

if __name__=="__main__":
    e = example()
    e.method=e.getvalue
    print e.method()

这给出了输出 getvalue。 现在我希望我的 getvalue() 方法返回我创建的动态方法的名称,即 method.有没有办法在 python 中做到这一点?如果是这样,我必须在我的 getvalue() 方法中做哪些更改,以便它返回动态创建的方法的名称。

import inspect
class example(object):
    def getvalue(self):
        return inspect.stack()[0][3]   #what to write here...

最佳答案

这是不可能的。

在 Python 中,同一个对象可以有多个“名称”,因此谈论一个对象的“the”名称没有意义。

方法是对象,函数和方法的编译器将编译完成时找到的“名称”存储在 __name__ 字段中。如果您稍后移动该对象并将其放置在使用其他名称可访问的地方,它所具有的 __name__ 字段将不会更改。

关于python - 如何获取动态创建的方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27775030/

相关文章:

python - Openerp : onChange event to create lines on account move

python - 错误谷歌 API : "Credentials in post body and basic Authorization header do not match"

python - 脚本 Hashbang : How to get the python 2 interpreter?

python-2.7 - 从 Python 中表示其名称的字符串构造一个可调用对象

python - 如何将通过 HTTP POST 接收的数据从 Python Flask 脚本传递到单独的 Python 脚本进行处理?

python - 如何从桌面文件中获取 Exec 字段

python - GAE Python NDB .put 在开发上不同步(但在生产中有效)?

python - astropy.io 适合大表的高效元素访问

python - 使用 numpy 提取每行的最小值

python-2.7 - 如何在Python中测试一个单词是否是单数形式?