【发布时间】:2011-06-03 06:05:32
【问题描述】:
我开始使用 python 并尝试为 ebay web service 构建 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)
其中,关键字是唯一必填字段。那么,我应该如何构造方法呢?方法可以是:
- 创建一个对象,传递给func(object):java方式
- 传递所有参数:func(a=val1, b=val2, c=val3, d=val4 etc)
- 使用 **kwargs 并相信调用函数的人,他将正确的键与值一起传递,因为我将使用键来实际构造 XML 标记。
更新:
您在请求中看到的所有xml标签都需要由用户传递。但是关键字应该被传递,如果需要,其他的可能被传递。
有什么建议吗?
【问题讨论】:
-
其他功能需要哪些字段才能改变?
-
不明白。所有这些字段都只是这个函数的本地字段。
-
换句话说,程序需要动态指定哪些字段?
-
嗯,字符串请求中的所有恶魔都应该由方法的用户传递。唯一的区别是,除了
<keywords>ipod</keywords>,所有字段都是可选的,这是强制性的。 -
我认为这是一个“显式更好”的案例