我想指定默认值,例如python
def my_function(arg1="my_string", arg2=[], arg3={}, arg4=True):
pass
以下是与上述等效的示例关键字定义。我想指定默认值。
*** Keywords ***
My Function
[Arguments] ${ARG1}=my_default_string ${ARG2}= <How to specify empty list) ${ARG3}= <How to specify empty dict) ${ARG4}= <How to specify boolean true)
some statements
some more statements
答案 0 :(得分:4)
如您问题的评论中所述,您do not want to use mutable default values。在这种情况下,一个常见的习语是这样的:
def my_function(arg1="my_string", arg2=None, arg3=None, arg4=True):
if arg2 is None:
arg2 = []
if arg3 is None:
arg3 = {}
请注意,arg1
和arg4
未更改。这是因为它们是IMMUTABLE,因此可以正确地用作默认参数。显然,这种方法的一个问题是,您的函数的用户不容易知道arg2
和arg3
的预期类型,因此您需要确保并包含一个解释预期类型的文档字符串
答案 1 :(得分:2)
虽然给定的答案很有用,但它并没有真正回答这个问题,因为问题是在Robot Framework中询问如何这样做,而不是在Python中。以下是您在Robot Framework中的表现:
My Function
[Arguments] ${arg1}=my_string ${arg2}=${None} ${arg3}=${None} ${arg4}=${True}
注意我也为你的args使用了小写名称。如果要遵循最佳实践,则应使用大写变量名称作为全局变量,而不是本地或参数变量名称。