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

Python类无输出问题求助:新手实现person类遇困境

问题分析与修复

你的代码存在几个关键问题导致没有输出:

  • hello方法内部递归调用person1.hello(),这会引发递归错误,且属于完全冗余的逻辑,方法本身已经实现了打印功能。
  • 实例化person1后,没有调用hello()方法触发打印操作。
  • 最后一行打印的是类的类型而非类名,不符合需求。

修复后的代码

import sys

class Person():  # 遵循Python规范,类名采用大驼峰命名
    def __init__(self, name):
        self.name = name

    def hello(self):
        # 通过self.__class__.__name__获取实例所属类名,适配子类继承场景
        print(f'My name is {self.name} and I am a {self.__class__.__name__}.')

# 实例化类并传入命令行参数
person1 = Person(sys.argv[1])
# 调用hello方法触发输出
person1.hello()
# 单独打印类名
print(Person.__name__)

关键修复点说明

  • 删除hello方法内的递归调用,保留核心打印逻辑。
  • 实例化完成后主动调用person1.hello(),触发内容输出。
  • 使用Person.__name__直接获取类名,或在实例中用self.__class__.__name__,后者在子类继承场景下更通用。
  • 调整类名为Person,符合Python PEP8命名规范。

内容的提问来源于stack exchange,提问作者sfroehle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:51:16