带有实例作为第一个参数的unbound方法得到字符串但需要其他东西

use*_*764 10 python oop methods

#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")
Run Code Online (Sandbox Code Playgroud)

给我这个看起来像这样的错误

TypeError:必须使用Maps实例作为第一个参数调用unbound方法add_animal()(改为使用str实例)

但我不知道它意味着什么,我无法弄清楚通过谷歌或雅虎搜索:(

Try*_*yPy 13

您需要一个Maps实例,而不是Maps类:

 maps.Maps.add_animal("Fred") # gives error

 mymap = maps.Map()

 mymap.add_animal("Fred") # should work
Run Code Online (Sandbox Code Playgroud)

因此,您应该在Animal类上,每个Animal实例上具有mymap属性,或者作为全局对象(无论哪种方式最适合您的情况).