我一直在看机器人的Telnet库(https://github.com/robotframework/robotframework/blob/master/src/robot/libraries/Telnet.py),我在这个问题的文档中找不到答案。
我知道Telnet对象处理TelnetConnections的打开和关闭,并存储当前连接。但是当调用像write之类的东西时,Robot如何知道调用Telnet._conn.write()?
例如:
Open connection 192.254.64.3
Open connection 192.254.64.4
Write This goes to the second IP
答案 0 :(得分:1)
Telnet库使用一些内省魔法,由RF动态库接口支持。
当使用Telnet库时,会调用get_keyword_names
。这也检查了TelnetConnection
类的自己的方法,并将它们注册为关键字。在执行RF呼叫时,例如Telnet.write
由__getattr__
方法处理,后者又调用基础TelnetConnection
的相应方法。
这整个机制在第308-240行中实现。