【问题标题】:Python List object has no attribute positionPython List 对象没有属性位置
【发布时间】: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


【解决方案1】:

在您的代码中定义 init_ 方法之外的常量:

class StareJoc():
  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"]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2023-02-15
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多