【发布时间】:2021-06-28 15:11:16
【问题描述】:
我收到此错误:AttributeError: 'list' object has no attribute 'Pozitie' 当我尝试运行我的代码时,我有一个类内部的列表,其中我有另一个类的对象,它需要三个参数:两个元组和一个列表,我'正在尝试将我的第一堂课中的列表作为参数传递。我对python很陌生,我已经尝试了我能想到的一切,感谢您的帮助。
这是我的代码,抱歉变量名不是英文:
class StareJoc():
def __init__(self):
self.Pozitie = [
["Negru_Tura", "Negru_Cal", "Negru_Nebun", "Negru_Regina", "Negru_Rege", "Negru_Nebun", "Negru_Cal", "Negru_Tura"],
["Negru_Pion", "Negru_Pion", "Negru_Pion", "Negru_Pion", "Negru_Pion", "Negru_Pion", "Negru_Pion","Negru_Pion"],
["--", "--", "--", "--", "--", "--", "--", "--"],
["--", "--", "--", "--", "--", "--", "--", "--"],
["--", "--", "--", "--", "--", "--", "--", "--"],
["--", "--", "--", "--", "--", "--", "--", "--"],
["Alb_Pion", "Alb_Pion", "Alb_Pion", "Alb_Pion", "Alb_Pion", "Alb_Pion", "Alb_Pion", "Alb_Pion"],
["Alb_Tura", "Alb_Cal", "Alb_Nebun", "Alb_Regina", "Alb_Rege", "Alb_Nebun", "Alb_Cal", "Alb_Tura"]]
def Toate_Mutarile_Posibile(self):
mutari = [Mutare((6, 4), (4, 4), self.Pozitie)] #<--- I want to pass in the list "Pozitie" from above,
#but I get the error 'list' object has no attribute 'Pozitie'
for rand in range(len(self.Pozitie)):
for coloana in range(len(self.Pozitie[rand])):
randul = self.Pozitie[rand][coloana][0]
if (randul == 'A' and self.Mutare_Alb) or (randul == 'N' and not self.Mutare_Alb):
piesa = self.Pozitie[rand][coloana]
if piesa.find('Pion') != -1:
self.MutariPion(rand, coloana, mutari)
elif piesa.find('Tura') != -1:
self.MutariTura(rand, coloana, mutari)
return mutari
class Mutare():
def __init__(self, Patrat_Start, Patrat_Destinatie, Pozitie_Curenta): #args: self, tuple, tuple, list
#(some code)
【问题讨论】:
-
如果您提供一个有效的minimal reproducible example 会有所帮助,以便我们自己看到错误。在这种情况下,您可以将其全部更改为英语,并省略所有不相关的部分。
-
我会冒险猜测您正在执行类似
StareJoc.Toate_Mutarile_Posibile(StareJob.Pozitie)的操作,这实际上会导致该错误。
标签: python list attributeerror