我正在写一些严重依赖** 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
答案 0 :(得分:0)
有很多方法可以做到这一点,但你可以将args标准化为小写,然后做你想做的任何测试:
kwargs = {k.lower():v for k,v in kwargs.items()}
然后保证所有字符串都是标准化的。