我让 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);

然后,您可以构造省略字段 PostTweetParameterx

关于python - Thrift Python 客户端中具有默认值的默认参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14878004/

10-10 18:27
查看更多