将元组传递给python类方法

时间:2013-03-05 19:55:04

标签: python class methods parameters tuples

我不是一个真正的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 个答案:

答案 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中不再有效等等......