passing tuple into a python class method
本问题已经有最佳答案,请猛点这里访问。
我不是一个真正的python人,但我必须处理它,因为一本书的作者用python发布了他们的代码示例。我得到以下代码的语法错误:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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) ... ... |
错误:定义添加(self,(sub,pred,obj)):^语法错误:无效语法
这是Python版本的问题还是什么?我似乎无法将元组以这种原始形式传递到类方法中。感谢您的建议。顺便说一下,我刚刚下载了python 3.3编译器。
是的,这是一个Python版本的问题。在python 3中不再允许使用tuple参数解包语法。请参阅http://www.python.org/dev/peps/pep-3113/了解如何替代。
尝试如下操作:
1 2 3 4 5 6 7 8 | 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) |
这段代码是针对Python2.7的,但在3.0等版本中它不再有效…