首页 > 解决方案 > Python:将参数传递给函数的两种不同方式

问题描述

有人可以帮助我理解为什么这两种myfunc使用相同参数的不同调用方式不一样吗?初学者在这里。

#!/usr/bin/env python3

def myfunc(ServiceCode,PaginationConfig):
    print("ServiceCode: " + ServiceCode)
    print("PaginationConfig: " + str(PaginationConfig))

# Method One
iterator = myfunc(ServiceCode='vpc',PaginationConfig={'MaxItems':123,\
    'PageSize':123,'StartingToken':'TEST-TOKEN'}) # This works as expected

# Method Two
operation_parameters = {'ServiceCode':'vpc','PaginationConifg':{'MaxItems':123,\
    'PageSize':123,'StartingToken':'TEST-TOKEN'}}

iterator = myfunc(**operation_parameters) # This results in "TypeError:\
    myfunc() got an unexpected keyword argument 'PaginationConifg'"

标签: pythonfunctiondictionary

解决方案


您的代码按预期工作。拼写有误。请找到第二个函数的工作代码及其输出:

operation_parameters = {'ServiceCode':'vpc','PaginationConfig':{'MaxItems':123,\
    'PageSize':123,'StartingToken':'TEST-TOKEN'}}

iterator = myfunc(**operation_parameters)

输出

ServiceCode: vpc
PaginationConfig: {'MaxItems': 123, 'PageSize': 123, 'StartingToken': 'TEST-TOKEN'}

推荐阅读