python - 以实例作为第一个参数的未绑定(bind)方法得到了字符串,但需要其他东西

标签 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")

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

TypeError:未绑定(bind)方法 add_animal() 必须使用 Maps 实例作为第一个参数调用(取而代之的是 str 实例)

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

最佳答案

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

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

 mymap = maps.Map()

 mymap.add_animal("Fred") # should work

因此,您应该在 Animal 类上为每个 Animal 实例或作为全局对象(任何最适合您的情况)设置一个 mymap 属性。

关于python - 以实例作为第一个参数的未绑定(bind)方法得到了字符串,但需要其他东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645444/

相关文章:

Python:导入具有非 py 扩展名的库

java - 字符串输入(仅输出所说的第一个单词)

c# 泛型重载方法分派(dispatch)不明确

java - 如何在我的 Java 方法中拥有两种不同的返回类型?

python - 尝试理解 model.predict 的输出

python - 单个 python 脚本文件中的 sqlalchemy

python - 在 Python2.7 上安装 tkMessageBox

java - 如何让我的 MenuItems 从单独的类中调用方法?

c++ - 什么时候应该在 C++ 中使用 'friend'?

ruby - 为什么会出现未初始化常量 Stuff::HTTPParty 错误?