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



我花了一些时间来弄清楚这一点,所以我发布了这个问答;A.假设您有一个函数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')

但是如果group可以是20个组合呢?

Django的更多"真实"案例:

from models import User, Project
import mommy
def create_instance_of_repetable_model(model, model_field):
if model == User:
mommy.make(User, user_perm='write')
if model == Project:
mommy.make(Project, project_perm='write')
if model == Project

在官方python文档中找到:

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'})