You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:06:41