Python类实例化与方法调用报错排查(Google Colab环境)
问题分析与解决方案
错误原因拆解
- 实例创建语法错误:
size=2cm不符合Python语法规范,带单位的数值需以字符串形式传入,即size='2cm',否则会触发语法错误导致aly变量未被正确定义,进而出现NameError。 - 实例方法调用错误:
aly()是错误地将实例当作函数调用,正确的方法调用方式为直接通过实例名访问方法,即aly.learning()。 - 文件打开模式错误:
open('yg.txt')默认以只读模式(r)打开文件,无法执行写入操作,会触发PermissionError,需指定写入模式(如'w'覆盖写入或'a'追加写入)。 - 无参数调用类构造器错误:删除
aly变量后直接调用Prsone().learning(),未传入构造器要求的5个参数,导致TypeError(错误提示中的6个参数为误导,实际构造器仅需5个参数)。
修正后的完整代码
class Prsone(): def __init__(self, name, size, he0or0she, age, Language) -> None: self.name = name self.size = size self.he0or0she = he0or0she self.age = age self.LGGE = Language def learning(self): x = input('میشه یک چیزی یادم بدی؟') # 使用追加模式打开文件,避免覆盖原有内容 with open('yg.txt', 'a', encoding='utf-8') as f: f.write(x + '\n') # 添加换行符,每条内容单独成行 print('ممنون') # 正确创建类实例 aly = Prsone(name='aly', size='2cm', he0or0she='AI', age='none', Language='fa-IR') # 正确调用学习方法 aly.learning()
额外优化说明
- 使用
with语句管理文件上下文,无需手动调用close(),避免资源泄漏。 - 指定
encoding='utf-8',确保波斯语文本能正确写入文件。 - 添加换行符
\n,让每次输入的内容单独成行,提升文件可读性。
内容的提问来源于stack exchange,提问作者Display
相关产品推荐
相关产品推荐

