将导入的函数映射到变量B

2024-04-20 09:05:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些导入的函数from package import fizz, buzz,我想将它们从字符串arg映射到变量func

class Whatever(object):
    def __init__(self, func_name='fizz'):
        try:
            self.func = vars()[func_name]
        except KeyError:
            print "Bad func_name"
            raise

但是vars()只捕获本地名称空间,我不想允许访问globals()。有什么想法吗?或者我应该用if-else逻辑吗


Tags: 函数字符串namefromimportselfpackageobject
1条回答
网友
1楼 · 发布于 2024-04-20 09:05:36

你可以用一个白名单。。。或者在这种情况下,一个“白色口述”

class Whatever(object):

    allowed = { 'fizz':fizz, 'buzz':buz }

    def __init__(self, func_name='fizz'):
        try:
            self.func = self.allowed[func_name]
        except KeyError:
            print "Bad func_name"
            raise

相关问题 更多 >