假设我有一个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
对象的所有属性,但它也包含方法。