一、描述
使用getattr动态执行当前模块的方法,使用this或者self来表示当前模块对象,但都报错,如下
sdev@n-adx-hadoop-client-3:~/liujichao$ python executeFun.py
Traceback (most recent call last):
File "executeFun.py", line 51, in
executeSelfFun('test',1)
File "executeFun.py", line 18, in executeSelfFun
funcImpl = getattr(self, func)
NameError: global name 'self' is not defined
sdev@n-adx-hadoop-client-3:~/liujichao$ python executeFun.py
Traceback (most recent call last):
File "executeFun.py", line 51, in
executeSelfFun('test',1)
File "executeFun.py", line 18, in executeSelfFun
funcImpl = getattr(this, func)
NameError: global name 'this' is not defined
二、解决方法
方法一:可以使用
import sys
sys.modules[__name__]
没找到其他方法
三、参考文章
官方文档:https://www.python.org/dev/peps/pep-3130/
注意:本文归作者所有,未经作者允许,不得转载