相关疑难解决方法(0)

使用字符串变量**kwargs作为命名参数

我试图找出一种循环json配置文件的方法,并使用键名作为使用**kwargs的方法的参数名称.我创建了一个json配置文件,并使用键名作为方法.我只是将"set_"附加到键名称以调用正确的方法.我将json转换为字典以循环任何默认值.我想通过字符串变量将参数名称传递给**kwargs.我试图传递一本字典,但似乎并不喜欢这样.

user_defaults = config['default_users'][user]

for option_name, option_value in user_defaults.iteritems():
    method = "set_" + option_name
    callable_method = getattr(self, method)
    callable_method(user = user, option_name = user_defaults[option_name])
Run Code Online (Sandbox Code Playgroud)

调用上面的callable_method将"option_name"作为kwarg的实际名称.我想传递它,以便当"shell"= option_name时它将作为参数名称的字符串名称传递.一个例子如下.这样我就可以遍历配置中的任何键,而不用担心我在为完成某些事情而编写的任何方法中寻找的内容.

def set_shell(self, **kwargs): 
    user  = kwargs['user']
    shell = kwargs['shell']

    ## Do things now with stuff
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏我是python的新手,仍然学习如何以pythonic的方式做事.

python command-line kwargs python-2.7

7
推荐指数
1
解决办法
6472
查看次数

Django对象按参数名称过滤

我的方法接受一个字符串参数,它基本上是一个 db 列的名称。

我可以做这样的事情吗:

  original_message = "Let it go"   
  language = "english"
  ads = Ad.objects.filter(language=original_message)
Run Code Online (Sandbox Code Playgroud)

其中语言不是名称,而是对字符串的引用?如果其他行,这将为我节省很多

python database django

1
推荐指数
1
解决办法
523
查看次数

标签 统计

python ×2

command-line ×1

database ×1

django ×1

kwargs ×1

python-2.7 ×1