将元组传递给Python类方法
我其实对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的编译器。
3 个回答
1
那段代码是针对Python 2.7的,但在3.0版本及以后就不再有效了...
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)
4
没错,这是一个Python版本的问题。在Python 3中,不再允许使用元组参数解包的语法。想了解更多信息和示例,可以查看这个链接:http://www.python.org/dev/peps/pep-3113/。