#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")
给了我一个看起来像这样的错误
TypeError:必须使用Maps实例作为第一个参数调用未绑定方法add_animal()(改为使用str实例)
但我不知道这意味着什么,我无法通过谷歌或雅虎进行搜索:(
答案 0 :(得分:13)
您需要一个地图实例,而不是地图类:
maps.Maps.add_animal("Fred") # gives error
mymap = maps.Map()
mymap.add_animal("Fred") # should work
因此,您应该在Animal类上,每个Animal实例上具有mymap属性,或者作为全局对象(无论哪种方式最适合您的情况)。
答案 1 :(得分:3)
您正在调用未绑定的方法,这意味着您正在从类本身访问方法,而不是通过实例(因此Python不知道哪个实例应该用作self
)。这段代码不应该如图所示给出错误,但我假设您正在执行类似
maps.Maps.add_animal(rbt)
目前还不清楚你要做什么,或者我会就如何修复它提出建议。