0

每当我尝试使用以下代码将三重添加到商店中时,都会出现以下错误。你能在这方面帮助我吗?提前致谢。

store = plugin.get('IOMemory',Store)()
store.add((abc, FOAF['knows'],def))

Error:

Traceback (most recent call last):
  File "C:\Python27\internetcode.py", line 114, in <module>
  store.add((abc, FOAF['knows'],def))
TypeError: add() takes at least 3 arguments (2 given)
4

2 回答 2

1

看来您必须至少传递 3 个参数。在该模块的文档中,您可以看到哪些参数需要add方法:

(abc, FOAF['knows'],def)是你的三倍?在这种情况下,您还需要两个:contextquoted

add(self, triple, context, quoted) 

我在这里找到了更多信息

add(self, (subject, predicate, object), context,quoted=False)

将给定语句添加到特定上下文或模型中。引用的参数由公式感知存储解释以指示此语句是引用的/假设的 不指定上下文并且引用的参数为 True 应该是错误的。当商店不支持公式时,引用的参数为 True 也应该是一个错误。

于 2011-09-15T15:04:31.123 回答
0

所以首先,你需要知道当 python 说一个方法需要 3 个参数时,它实际上意味着两个参数加上实例参数(通常self)。您当前正在传递实例 ( store) 加上一个三元素元组:(abc, FOAF['knows'], def),它算作一个参数。 store.add()需要第三个参数。这就是错误消息试图告诉您的内容。我不知道它需要什么,但文档应该能够进一步解释。

如果不出意外,您可以尝试一下store.add((abc, FOAF['knows'], def), None),看看是否会导致新的错误。

于 2011-09-15T14:55:37.243 回答