我在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的一些关键部分。我试图研究我,但我完全迷失了,现在有几种理论。
答案 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