clipspy:如何获取实例的插槽字典

时间:2018-10-16 13:35:43

标签: python clips clipspy

documentation包含以下示例代码:

...
klass = env.find_class('MyClass')
instance = klass.new_instance('instance-name')
instance['One'] = 1
instance['Two'] = 2

是否有内置功能为我提供了有关插槽及其值的字典?就像.Slots()的{​​{1}}方法一样。

类似这样的东西:

pyclips

1 个答案:

答案 0 :(得分:1)

clipspy 0.3.0起,您可以遍历对象元数据以构建数据结构。

implied_fact = env.assert_string("(implied-fact 1 2 3)")
list(implied_fact)

[1, 2, 3]

template_fact = env.assert_string("(template-fact (template-slot a-symbol))")

list(template_fact)
[('template-slot', 'a-symbol')]

dict(template_fact)
{'template-slot': 'a-symbol'}

klass = env.find_class('MY-CLASS')
instance = klass.new_instance('instance-name')
instance['One'] = 1
instance['Two'] = 2

dict(instance)
{'One': 1, 'Two': 2}