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

Python类代码报错:无法使用字符串类,请求排查代码缺陷

问题排查与修复方案

你的代码核心问题是类的实例变量和方法重名:

  • 你在Person类里同时定义了实例变量name/sex,以及同名的name()/sex()方法
  • 当构造函数__init__给self.name赋值为输入的字符串后,这个字符串类型的实例变量会直接覆盖掉同名的方法
  • 后续调用p.name()时,实际上是在尝试调用一个字符串对象,这就触发了“无法使用字符串类”的错误

修正后的代码如下:

class Person:
    def __init__(self, name, sex):
        self.name = name
        self.sex = sex
        print("构造函数的调用")
    # 修改方法名,避免和实例变量冲突
    def print_name(self):
        print(self.name)
    def print_sex(self):
        print(self.sex)

a = input()
b = input()
p = Person(a, b)
p.print_name()
p.print_sex()

额外补充两个优化点:

  • 类开头的name=None和sex=None属于冗余代码,构造函数会直接给实例变量赋值,不需要提前声明
  • 方法命名建议遵循Python小蛇形命名规范(比如print_name),可读性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:13:08