它实际上归结为可变/不可变的变量蟒蛇,以及它们是如何传递给函数。
这里的详细信息in this answer,但在RF上下文中归结为 - 您可以更改列表和字典,而不是字符串和数字(int,float)。例如:
A testcase
Log To Console \n
${var}= Create List member1
Log To Console ${var}
Mutate The List ${var}
Log To Console ${var}
*** Keywords ***
Mutate The List
[Arguments] ${lst}
Append To List ${lst} new one
输出时运行将是:
==============================================================================
A testcase
['member1']
['member1', 'new one']
| PASS |
,例如在案例中定义的变量被关键字改变了。字典也可以做到这一点。
如果你重新分配函数中的变量,它不会改变;例如有了这样的关键字:
Mutate The Dict
[Arguments] ${lst}
${lst}= Create List fsf
Append To List ${lst} bogus
,原始变量${var}
不会改变。
为什么这样?总之,在python变量只是内存地址的标识符(“名称”);当您将${lst}
分配给新列表时,变量现在指向内存中的新地址,并且进一步的交互不会更改原来的地址。
我认为你是对的。我探索了很多,没有发现任何东西。 –
@ZeinabAbbasimazar Python的可变类型实际上可以通过关键字改变 - 请在下面检查我的答案。 – Todor