**kwargs与python函数中的10个参数?

zen*_*ngr 5 python xml ebay-api

我开始使用python并尝试为ebay Web服务构建XML请求:

现在,我的问题是:

说,这是我的功能:

def findBestMatchItemDetailsAcrossStores():
     request = """<?xml version="1.0" encoding="utf-8"?>
     <findBestMatchItemDetailsAcrossStoresRequest xmlns="http://www.ebay.com/marketplace/search/v1/services">
     <siteResultsPerPage>50</siteResultsPerPage>
     <entriesPerPage>50</entriesPerPage>
     <ignoreFeatured>true</ignoreFeatured>
     <keywords>ipod</keywords> <-----REQUIRED
     <itemFilter>
     <paramName>PriceMin</paramName>
     <paramValue>50</paramValue>
     <name>Currency</name>
     <value>USD</value>
     </itemFilter>
     <itemFilter>
     <paramName>PriceMax</paramName>
     <paramValue>100</paramValue>
     </itemFilter>
     </findBestMatchItemDetailsAcrossStoresRequest>"""
     return get_response(findBestMatchItemDetailsAcrossStores.__name__, request)
Run Code Online (Sandbox Code Playgroud)

其中,关键字是唯一必填字段.那么,我该如何构建方法呢?方法可以是:

  1. 创建一个对象,将其传递给func(对象):java方式
  2. 传递所有参数:func(a = val1,b = val2,c = val3,d = val4等)
  3. 使用**kwargs并信任调用该函数的人,他使用值传递正确的键,因为我将使用键来实际构造XML标记.

更新:

您在请求中看到的所有xml标记都需要由用户传递.但是如果需要,应该传递关键字并传递其他关键字.

有什么建议?

let*_*bee 7

一个好主意是None在函数签名中放入具有适当默认值(或只是默认值)的所有参数.是的,它需要在函数本身中输入更多内容,但界面将是干净的,自我记录的并且易于使用,因为您不必在ebay文档或函数源中查找可能的参数.它会节省你的时间.