Python中创建并调用Person对象实例出错,求原因及解决方法
问题分析与修正
你的代码存在几个关键错误,导致无法正常初始化实例并设置name属性:
错误1:
__init__被错误嵌套
在Python类中,__init__是类的构造方法,必须直接定义在类的顶层作用域内,不能嵌套在其他方法(比如你定义的Person方法)内部。嵌套在方法里的__init__只是一个普通内部函数,Python解释器不会将其当作类的构造方法执行,实例化时自然不会触发它给self.name赋值。错误2:实例创建方式错误
Python创建类实例的正确方式是类名(参数),比如Person('James'),而非Person.Person('James')——后者是试图调用类的方法,但你定义的Person方法需要self参数,调用时未传递会直接报错,且这本身就不是实例化的正确逻辑。错误3:多余的同名方法
你在类里定义的def Person(self, name)完全多余,Python的构造方法固定为__init__,和类同名的方法不会被当作构造方法使用。
修正后的代码
class Person: def __init__(self, name): self.name = name m = Person('James') print(m.name) # 输出:James
内容的提问来源于stack exchange,提问作者Mr Agent Smith
相关产品推荐
相关产品推荐

