如何在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'})