首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从机器人框架中通过方法调用类变量打印空列表

从机器人框架中通过方法调用类变量打印空列表
EN

Stack Overflow用户
提问于 2019-12-30 17:30:52
回答 1查看 278关注 0票数 0

Python版本: 3.7.8机器人框架: 3.1.2

我有一个python类,其中指定了一个类变量,以便稍后在机器人框架中存储和检索数据。

示例: class1

代码语言:javascript
运行
复制
class test1():
   __testvar__=[]

   def set_data(self, data):
      test1.__testvar__.append(data)

   def get_data(self)
      return test1._testvar__

   def main_calling_method(self):
      ...something...
      self.set_data(data)

class2:

代码语言:javascript
运行
复制
from ...test1 import test1
class test2():
   t=test1()

   def get_method_data(self)
      return test2.t.main_calling_method()

机器人框架: Robot1文件:

代码语言:javascript
运行
复制
*** Settings ***
Library   Pathto\test2.py

*** Keywords ***

 callingkeyword
 ${body}=  get_method_data
 [RETURN]  ${body}

 main keyworkd
 ${response}=  callingkeyword
 [RETURN]  ${response}

Robot2文件:

代码语言:javascript
运行
复制
*** Settings ***
Resoure Pathto\Robot1.robot
Library Pathto\test1.py

*** Keywords ***
testing
${temp}=  main keyworkd
${data}=  get_data
log to console  ${data}

预期结果:-值的类变量--testvar_将在控制台中打印

实际结果:-打印空列表。

如果我从python运行'get_data‘方法,它会打印作为set_data的一部分添加的数据,但是在从机器人框架运行时不会产生相同的结果。

但是,如果像下面这样调用set方法,在调用get_method之前,则正确地打印数据。

代码语言:javascript
运行
复制
  *** Keywords ***
    testing
    ${temp}=  main keyworkd
    set_data=  testing
    ${data}=  get_data
    log to console  ${data}

你能帮我解决问题吗?

注意:以上场景只是为了理解目的而编写的虚拟代码,因为出于安全考虑,我无法共享实际的项目代码。

EN

回答 1

Stack Overflow用户

发布于 2020-01-03 09:51:26

似乎您没有将任何数据放入类中,因此在打印时没有得到任何输出。但是在您展示的第二部分代码中,您将"set_data=测试“称为”测试“(我想这是您定制的另一个关键字?),它似乎将数据放入类中,以便打印出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59534664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档