Python练习:Student类实例化出现TypeError: Student() takes no arguments错误求助
问题排查与修复:Student类实例化参数错误
错误原因
你编写的Student类缺少构造方法__init__,Python默认的类构造函数不支持传入额外参数,因此当你执行Student(name='Wes', age=10)时,会抛出TypeError: Student() takes no arguments的错误。
修复后的完整代码
class Student: def __init__(self, name, age): """Initialize Student object with name and age.""" self.name = name self.age = age def get_name(self): """Return the name of current Student object.""" return self.name def get_age(self): """Return the age of the current Student object.""" return self.age def say_hello(self, message=None) -> None: if message is not None: print(f"{self.name} says: {message}") else: print(f"Hello, my name is {self.name}. Nice to meet you!") if __name__ == '__main__': student = Student(name='Wes', age=10) name = student.get_name() age = student.get_age() student.say_hello() message = f"The student's name is {name}. Their age is {age}." student.say_hello(message)
修复说明
- 添加
__init__方法作为类的构造函数,接收name和age两个参数,并将它们赋值给实例属性self.name和self.age,这样类的其他方法(如get_name、say_hello)才能访问这些属性。 - 构造方法是Python类初始化实例的标准方式,所有需要接收初始化参数的类都应该定义该方法。
运行结果
执行修复后的代码,会输出预期内容:
Hello, my name is Wes. Nice to meet you! Wes says: The student's name is Wes. Their age is 10.
内容的提问来源于stack exchange,提问作者Weswenger
相关产品推荐
相关产品推荐

