Python关键字参数解包并返回字典

Kar*_*mar 20 python dictionary argument-unpacking

我有一个函数定义如下,我传递的是关键字参数.如何返回与关键字参数同名的字典?

我可以手动做:

def generate_student_dict(first_name=None, last_name=None , birthday=None, gender =None):
    return {
        'first_name': first_name,
        'last_name': last_name,
        'birthday': birthday,
        'gender': gender
    }
Run Code Online (Sandbox Code Playgroud)

但我不想这样做.有没有什么方法可以让我在没有实际输入字典的情况下完成这项工作?

 def generate_student_dict(self, first_name=None, last_name=None, birthday=None, gender=None):
     return # Packed value from keyword argument.
Run Code Online (Sandbox Code Playgroud)

And*_*yko 13

如果这种方式适合您,请使用kwargs(请参阅了解Python中的kwargs),如下面的代码片段所示:

def generate_student_dict(self, **kwargs):            
     return kwargs
Run Code Online (Sandbox Code Playgroud)

否则,您可以built-in locals()在函数start处创建params的副本并返回该副本:

def generate_student_dict(first_name=None, last_name=None , birthday=None, gender =None):
     # It's important to copy locals in first line of code (see @MuhammadTahir comment).
     args_passed = locals().copy()
     # some code
     return args_passed

generate_student_dict()
Run Code Online (Sandbox Code Playgroud)


Mar*_*oun 8

如果您不想通过**kwargs,您只需返回locals:

def generate_student_dict(first_name=None, last_name=None, 
                          birthday=None, gender=None):
    return locals()
Run Code Online (Sandbox Code Playgroud)

请注意,self如果将其作为参数传递,则要从结果中删除.