Método no consolidado con instancia, ya que el primer argumento tiene una cadena pero requiere algo más

#Maps.py class Maps(object): def __init__(self): self.animals = [] self.currently_occupied = {} def add_animal(self, name): self.animals.append(name) self.currently_occupied = {robot:[0, 0]} #animal.py class Animal(object): def __init__(self, name): import maps maps.add_animal(rbt) self.name = name #Tproject.py from Animal import Animal Fred = Animal("Fred") 

me da esto un error que se ve así

TypeError: el método no vinculado add_animal () debe llamarse con la instancia de Maps como primer argumento (en su lugar, tiene la instancia de str)

pero no sé lo que significa y no puedo resolverlo buscando a través de google o yahoo 🙁

Necesitas una instancia de Maps, no la clase Maps:

  maps.Maps.add_animal("Fred") # gives error mymap = maps.Map() mymap.add_animal("Fred") # should work 

Por lo tanto, debe tener un atributo mymap en la clase Animal, por instancia de Animal o como un objeto global (lo que sea mejor para su caso).

Está llamando a un método independiente, lo que significa que está accediendo a un método desde una clase en sí, y no a través de una instancia (por lo que Python no sabe qué instancia debería usarse como self ). Este código no debería dar ese error como se muestra, pero asumo que estás haciendo algo como

 maps.Maps.add_animal(rbt) 

No está claro qué intentas hacer, o te daría una sugerencia sobre cómo solucionarlo.