我让 Python 客户端使用一些可选参数调用 Thrift 服务,例如:
bool postTweet(1: required Tweet tweet, 2: i32 x = 100);
如果我尝试从 Python 客户端调用此服务而不传递可选参数 x,则会出现异常:
TypeError: postTweet() takes exactly 2 arguments (1 given)
任何线索为什么我会收到此异常,但它是具有默认值的可选参数?
最佳答案
无法定义具有默认值的 thrift 函数(至少从我阅读 thrift 白皮书后的理解来看)
你可以做的是定义一个特殊的参数结构,让你省略一些字段。
示例节俭代码:
struct PostTweetParameter {
1: required Tweet tweet;
2: optional i32 x;
}
bool postTweet(1: PostTweetParameter param);
然后,您可以构造省略字段
PostTweetParameter
的 x
。关于python - Thrift Python 客户端中具有默认值的默认参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14878004/