#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:必须使用映射实例作为第一个参数调用未绑定的方法add_animal() (改为获取字符串实例)
但我不知道它是什么意思,我也不能通过谷歌或雅虎搜索它:
发布于 2012-05-18 01:20:23
您需要一个Maps实例,而不是Maps类:
maps.Maps.add_animal("Fred") # gives error
mymap = maps.Map()
mymap.add_animal("Fred") # should work
因此,对于Animal类,每个Animal实例都应该有一个mymap属性,或者作为一个全局对象(只要最适合您的情况)。
发布于 2012-05-18 01:13:05
您正在调用一个未绑定的方法,这意味着您将从一个类本身访问一个方法,而不是通过一个实例(因此Python不知道哪个实例应该用作self
)。这段代码应该不会给出如下所示的错误,但我假设您正在执行如下操作
maps.Maps.add_animal(rbt)
现在还不清楚你想要做什么,或者我会给出一个如何修复它的建议。
https://stackoverflow.com/questions/10645444
复制相似问题