机器人框架中的对象属性

时间:2017-06-09 09:31:18

标签: python robotframework

假设我有一个python类,如:

class MyObject:
    def __init__(self, name=""):
        self.name = name
    def print_attr(self):
        return vars(self)
    def __str__(self):
        return self.name

和RF脚本如:

*** Settings ***
Variables         mine.py
*** Test Cases ***
Example
${DOG}=    Set Variable    ${MyObject("dog")}
${CAT}=    Set Variable    ${MyObject("cat")}
${MyObject.does_it_fly}=    Set Variable    nope
${CAT.does_it_fly}=    Set Variable    yeeep

当我Log ${DOG.print_attr()}Log ${CAT.print_attr()}时,我分别得到了结果:

{'name':'dog'}
{'does_it_fly':'yeeep', 'name':'cat'}

但是当我Log ${DOG.does_it_fly}时,我得到nope

我的问题是," does_it_fly"属性未显示在" DOG"对象属性,但是当我单独检查它时,它会出现吗?

有没有办法显示所有类属性?我在做什么/假设错了?

我尝试使用__dict __,dir,vars(下面的示例)检查类属性,但结果是相同的 - 只有" name"显示。 (我猜它是因为函数正在检查.py文件中的内容是否物理上写了):

def class_attr():
    return MyObject().__dict__

编辑:
实际上,dir(self)而不是vars(self)会打印DOG对象的所有属性,但它也包含方法。

0 个答案:

没有答案