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
相关产品推荐
相关产品推荐

