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属性,或者作为全局对象(无论哪种方式最适合您的情况).