【发布时间】:2015-06-26 13:44:55
【问题描述】:
程序的第一部分定义了类,第二部分通过不同的程序调用类,但我不断收到“TypeError: check_mood() missing 1 required positional argument: 'self'” for line 5 在第二部分 随机导入
class Animal:
#initialize attributes
def __init__(self,animal_type, name, mood):
self.__animal_type = animal_type
self.__name = name
self.__mood = mood
# set methods
def set_animal_type(self, animal_type):
self.__animal_type = animal_type
def set_name(self, name):
self.__name = name
def set_mood(self, mood):
self.__mood = mood
#check mood
def check_mood(self):
integer = random.randint(1,3)
if integer == 1:
self.__mood = "happy"
elif integer == 2:
self.__mood = "hungry"
elif integer == 3:
self.__mood = "sleepy"
#return methods
def get_animal_type(self):
return self.__animal_type
def get_name(self):
return self.__name
def get_mood(self):
return self.__mood
我做了一个简单的测试程序来运行它:
import Animal
an = input("enter aninal:")
na = input("enter name:")
mo = Animal.Animal.check_mood()
animals = Animal.Animal(an,na,mo)
print(animals.get_animal_type(), animals.get_name(), animals.get_mood())
【问题讨论】:
-
Animal.Animal.check_mood()你试图在没有实例的情况下调用 instance 方法。您需要使用一个实例,例如a = Animal(); a.check_mood() -
我这样做并收到错误“TypeError: 'module' object is not callable”
-
@helpplease,它需要 Animal.Animal() 来获取模块内的类。模块通常最好用小写字母命名。
-
我也试过了,但收到一条错误消息,提示我缺少 3 个必需的位置参数
-
@helpplease,你自己写了这段代码。它需要三个参数。你打电话给
Animal.Animal(),口译员回答“缺少 3 个必需的位置参数”。你觉得哪里不对?
标签: python class python-3.x attributes typeerror