【发布时间】:2014-10-06 07:04:33
【问题描述】:
我有这四个描述世界的类,有猫和老鼠,只有一个动物中的方法来搜索特定的动物(猫或老鼠)。
单个文件中的所有代码都有效(打印:“我是鼠标”)但如果我将每个文件拆分一个类,我会收到以下错误消息:
if isinstance(ani,getattr(sys.modules[__name__],className)):
AttributeError: 'module' object has no attribute 'Mouse'
类动物
import sys
class Animal(object):
def searchAnimal(self,animals,className):
theAnimal = None
for ani in animals:
if isinstance(ani,getattr(sys.modules[__name__],className)):
theAnimal = ani
return theAnimal
类鼠标
from Animal import *
class Mouse(Animal):
def __str__(self):
return "I'm a mouse"
类猫
from Animal import *
class Cat(Animal):
def __str__(self):
return "I'm a cat"
班级世界
from Cat import *
from Mouse import *
class World(object):
def __init__(self):
self.animals = []
for i in range(0,2): # 2 Cats
self.animals.append(Cat())
for i in range(0,5): # and 5 Mice
self.animals.append(Mouse())
if __name__ == '__main__':
aWorld = World()
theCat = aWorld.animals[0]
ani = theCat.searchAnimal(aWorld.animals,"Mouse")
print(ani)
我该如何解决这个问题?这可能是由于循环导入。
谢谢,
菲利普
【问题讨论】:
-
您似乎正在尝试使用一种复杂的方式来解决此问题。你能解释一下你想要实现/设计的目标吗?
标签: python