【发布时间】:2021-05-07 02:51:06
【问题描述】:
这是我的代码:
def formateUserData(FirstName = None, MiddleName = None, LastName = None, DOB = None, Gender = None):
formatedUserData = {}
dataFieldKeys = ['First Name', 'Middle Name', 'Last Name', 'DOB', 'Gender']
dataFieldValues = [FirstName, MiddleName, LastName, DOB, Gender]
for key, value in zip(dataFieldKeys, dataFieldValues):
if value: formatedUserData[key] = value
return formatedUserData
如您所见,关键字参数必须重复 3 次(第 1 行第一次,第 3 行第二次,第 4 行第三次)。有没有办法只存储一次关键字参数就可以做同样的事情?如果可能的话,也许通过使用某种方式遍历关键字参数?顺便说一句,我不想使用 **kwargs。
【问题讨论】:
-
查看
locals()或此处提到的其他答案:stackoverflow.com/questions/582056/… -
您可以传递一个包含多个参数的对象,然后对其属性进行迭代
-
这里通常的方法是升级抽象,创建一个具有这些字段属性的模型类。然后,当您调用此函数时,您只需传递一个实例
user。
标签: python python-3.x performance functional-programming dry