如何从函数中获取列表值? (蟒蛇)

时间:2017-02-19 15:35:40

标签: python function

我在python中有2个单独的文件。在一个文件中,我有一个类'游戏'的代码:

def getPosition(self,score):
    position = [((3,1), 'Good'),((1,2), 'Bad')]
    return position

然后,在第二个文件中,我有一个函数,它接受函数'getPosition'存在的这个类'游戏':

def calculateNextStep(game):
    actions = []
    actions.append(game.getPosition[0])
    return actions

我只想将getPosition位置0的列表值附加到操作中,但是会出现此错误:

line 95, in calculateNextStep
  actions.append(game.getPosition[0])          
TypeError: 'instancemethod' object has no attribute '__getitem__'

我显然不了解Python的一些关键部分。我试图研究我,但我完全迷失了,现在有几种理论。

1 个答案:

答案 0 :(得分:0)

使用from functools import partial def myfun(*args, first="first default", second="second default", third="third default"): for arg in args: print(arg) print("first: " + str(first)) print("second: " + str(second)) print("third: " + str(third)) mypart = partial(myfun, 1, 2, 3, first="partial first") mypart(4, 5, second="new second") 1 2 3 4 5 first: partial first second: new second third: third default 您正在尝试访问属于游戏的数组game.getPosition[0]。相反,因为getPosition是一项功能,您必须首先通过将getPosition添加到结尾来调用它,例如()。现在,当getPosition()返回一个数组时,您可以通过先调用来访问第一个元素,他们可以像getPosition()一样访问

使用示例编辑:

getPosition()[0]

这会返回元组:

def calculateNextStep(game): actions = game.getPosition()[0] return actions