我不是一个真正的python人,但只是因为书籍作者在python中发布了他们的代码示例而不得不处理它。我收到以下代码的语法错误:
class SimpleGraph:
def __init__(self):
self._spo = {}
self._pos = {}
self._osp = {}
def add(self, (sub, pred, obj)):
"""
Adds a triple to the graph.
"""
self._addToIndex(self._spo, sub, pred, obj)
self._addToIndex(self._pos, pred, obj, sub)
self._addToIndex(self._osp, obj, sub, pred)
...
...
错误: def add(self,(sub,pred,obj)): ^ SyntaxError:语法无效
这是python版本问题还是什么?我似乎无法将元组传递给原始形式的类方法。建议表示赞赏。顺便说一下,我刚刚下载了Python 3.3编译器。
答案 0 :(得分:4)
是的,这是一个Python版本问题。 Python 3中不再允许使用tuple-argument-unpacking语法。有关解释和操作示例,请参阅http://www.python.org/dev/peps/pep-3113/。
答案 1 :(得分:3)
尝试这样的事情:
def add(self, myTup):
"""
Adds a triple to the graph.
"""
(sub, pred, obj) = myTup
self._addToIndex(self._spo, sub, pred, obj)
self._addToIndex(self._pos, pred, obj, sub)
self._addToIndex(self._osp, obj, sub, pred)
答案 2 :(得分:1)
该代码适用于python 2.7,但它在版本3.0中不再有效等等......