2024-05-13 11:58:12 发布
网友
我让Python客户机调用一个带有如下可选参数的精简服务:
bool postTweet(1: required Tweet tweet, 2: i32 x = 100);
如果我试图从Python客户端调用此服务而不传递可选参数x,则会出现异常:
TypeError: postTweet() takes exactly 2 arguments (1 given)
有什么线索可以解释为什么我得到这个异常,但是它是一个带有默认值的可选参数吗?
x参数必须与其他参数分开定义。否则,会把其他事情搞砸。要创建可选参数,函数必须类似于: def函数(x=0): 这样,您可以选择使用参数的x值,但是如果您通过 函数() X自动分配给0。 记住,x必须在参数中单独设置,而不是与其他参数混合。
不可能用默认值定义一个节俭函数(至少从我阅读节俭白皮书后的理解来看)
您可以做的是定义一个特殊的参数结构,它允许您省略一些字段。
节约代码示例:
struct PostTweetParameter { 1: required Tweet tweet; 2: optional i32 x; } bool postTweet(1: PostTweetParameter param);
然后可以构造省略了字段x的PostTweetParameter。
x
PostTweetParameter
x参数必须与其他参数分开定义。否则,会把其他事情搞砸。要创建可选参数,函数必须类似于: def函数(x=0): 这样,您可以选择使用参数的x值,但是如果您通过 函数() X自动分配给0。 记住,x必须在参数中单独设置,而不是与其他参数混合。
不可能用默认值定义一个节俭函数(至少从我阅读节俭白皮书后的理解来看)
您可以做的是定义一个特殊的参数结构,它允许您省略一些字段。
节约代码示例:
然后可以构造省略了字段
x
的PostTweetParameter
。相关问题 更多 >
编程相关推荐