无论如何用随机CaMElCase接受kwarg?

时间:2015-04-16 18:47:43

标签: python-2.7

我正在写一些严重依赖** kwargs的课程。我希望以最终用户可以创建这些对象的方式编写它,而无需知道关键字的确切情况。

class Foo(object):
    def __init__(self, **kwargs):
        # Rewrite this to accept random case
        if "EnableDebug" in kwargs and kwargs.get("EnableDebug") == True:
            print "EnableDebug mode."

然后这个库的最终用户可以做一些事情:

myobj = Foo(enableDEBUG=True)

我知道我可以通过** kwargs蛮力,并通过一系列测试和字符串操作,但很好奇有一个漂亮的技巧或我不知道的东西。

获取任何帮助

更新

当我使用python 2.76尝试此错误时出现错误:

File "/home/devel/test.py", line 144, in <dictcomp>
    kwargs = {k.lower():v for k,v in kwargs}
ValueError: too many values to unpack

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,但你可以将args标准化为小写,然后做你想做的任何测试:

kwargs = {k.lower():v for k,v in kwargs.items()}

然后保证所有字符串都是标准化的。