代码之家  ›  专栏  ›  技术社区  ›  Qback

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

  •  0
  • Qback  · 技术社区  · 6 年前

    假设你有函数 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
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Qback    6 年前

    official python docs :

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