Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中从字符串传递位置参数_Python - Fatal编程技术网

如何在Python中从字符串传递位置参数

如何在Python中从字符串传递位置参数,python,Python,我花了一些时间来弄清楚这一点,所以我发布了这个问答。 假设您有一个函数def my_func(group),它接受一个参数组,该参数将用作下一个函数中的位置参数:def set_permission(group_user=None,group_admin=None)。因此: group = 'group_user' my_func(group): if group == 'group_user': set_permission(group_user='write') if gro

我花了一些时间来弄清楚这一点,所以我发布了这个问答。 假设您有一个函数
def my_func(group)
,它接受一个参数组,该参数将用作下一个函数中的位置参数:
def set_permission(group_user=None,group_admin=None)
。因此:

group = 'group_user'
my_func(group):
  if group == 'group_user':
    set_permission(group_user='write')
  if group == 'group_admin':
    set_permission(group_admin='write')
但是如果
可以是20个组合呢

来自Django的更多“真实”案例:

如图所示:

和“现实生活”

from models import User, Project
import mommy

def create_instance_of_repetable_model(model, model_field):
  mommy.make(model, **{model_field: 'write'})

这不是一个位置参数,这是一个与之完全相反的关键字参数。@abarnert是的,你是对的。我忘了这是一个更具体的例子,我会马上编辑。如果你自己编写这个函数,你应该给它一个你真正想要调用的API,而不是一个调用起来很痛苦的API,所以你必须破解它。这是一个糟糕的代码味道。
group = 'group_user'
def my_func(group):
  set_permission(**{group: 'write'})  # it works like set_permission(group_user='write')
  print_permission(group)

my_func(group)  #  prints -> 'group_user': 'write'

group = 'group_admin'
my_func(group)  # prints -> 'group_admin': 'write'
from models import User, Project
import mommy

def create_instance_of_repetable_model(model, model_field):
  mommy.make(model, **{model_field: 'write'})