类返回的对象可以转化为字符串
通过重写 def __str__(self): 的方法返回字符串可以将类产生的对象转化为字符串
class Student: def __init__(self,name,age): self.name = name self.age = age def __str__(self): return ",".join([self.name,str(self.age)]) student1 = Student("张三",18) student2 = Student("李四",20) print(student1) print(student2) fw = open("data.csv","w",encoding="UTF-8") fw.write(student1) fw.close()join的注意点
.join () 方法只接受1 个参数
下面代码错误
",".join(self.name,str(self.age))正确的写法
",".join([self.name,str(self.age)])打印结果
print和文件的写入(write)注意点
fw.write(student1) 写入会报错正确的写法
转为字符串类型
fw.write(str(student1))原因是:
print()会自动帮你转字符串
print(任意对象)底层会自动执行:
先调用对象的
__str__()魔法方法自动转为字符串再输出
文件的.write()不会自动转换
file.write(内容)强制要求:必须传入纯字符串 str
所以需要手动str