Python中__str__函数返回值打印问题及代码修正咨询
问题代码修正建议
你的代码存在几个不符合Python规范的问题,导致课程自动检查不通过,以下是修正后的代码和问题说明:
修正后的代码
class X(str): def __str__(self): return self.capitalize() b = X('hello') print(b)
问题点说明
- __str__方法签名错误:Python中
__str__的标准定义只有self一个参数,你额外添加的name参数不符合规范,自动检查系统会判定方法签名不合法。 - 硬编码固定值:你直接把'hello'写死在方法里,没有利用实例本身存储的字符串内容,这样不管传入什么字符串,返回的都是'Hello',完全失去了类的通用性。
- 手动调用__str__并传参:正常情况下
print(b)会自动触发__str__方法,不需要手动调用b.__str__('hello'),这种调用方式不符合Python的常规用法。
内容的提问来源于stack exchange,提问作者closedcntr
相关产品推荐
相关产品推荐

