为什么模块不可调用

时间:2015-04-27 04:32:59

标签: python class python-3.x module

我的大部分程序都已完成,但是我一直收到错误,似乎无法弄清楚为什么会这样做。我也试过animal_list = Zoo.Zoo()

line 43, in addAnimal
    animal_list = Zoo()
TypeError: 'module' object is not callable

这是我的一些程序

import Animal
import Zoo
def main():
    #set user choice 
    choice = 0
    while choice != "3":
        display_menu()

        #get user's choice
        choice = str(input("What would you like to do? "))

        #Perform selected choice
        if choice.isalpha():
            print("Please enter a numeical value")

        elif choice == "1":
            addAnimal()

#Add animal to list
def addAnimal():
    atype = input("What type of animal would you like to create? ")
    aname = input("What is the animal's name? ")
    theAnimal = Animal.Animal(atype, aname)
    theAnimal.set_animal_type(atype)
    theAnimal.set_name(aname)
    animal_list = Zoo()
    animal_list.add_animal(theAnimal,Animal)

1 个答案:

答案 0 :(得分:2)

查看您的其他问题,您的Zoo课程非常错误。

您的Zoo班级 应如下所示:

class Zoo:

    def __init__(self):
        self.__animals = []

    def add_animal(self, animals):
        self.__animals.append(animal)

    def show_animals(self):
        size = len(self.__animals)
        if size == 0:
            print("There are no animals in your zoo!")
        else:
            return __animals

而是定义这样的方法:

def __init__(Animal):

并定义变量,如:

Animal.__animals = []

这根本没有意义。

您的问题是您使用了模块(Animal)而不是self。我不知道你可能在哪里得到这个想法,但你可能想要仔细阅读class definition in the Python documentation