![Python数据分析从小白到专家](https://wfqqreader-1252317822.image.myqcloud.com/cover/745/38209745/b_38209745.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.4.2 Python自定义类与打印函数
首先介绍面向对象编程(OOP),其是相对于面向过程来讲的。面向对象方法把相关的数据和方法组织为一个整体来看待,从更高的层次进行系统建模,更贴近事物的自然运行模式。
确切地说,面向对象编程(OOP)通过“抽象”“继承”“封装”3种方式来实现更佳的“人机友好”。抽象是将一些方法写为抽象类(一种不可以被实例化,只能被继承的类);通过“继承”衍生出各种子类,将方法“封装”在各个子类中以供使用者调用。这就是面向对象编程(OOP)的基本思想。
在Python中以class为关键字,在其后跟类名来创建一个自定义类,在内部封装类的对象和方法等,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_64_5.jpg?sign=1739273831-fZa3VHoMhVD9AWxSeMGDp3HV67NGI52N-0-7b650dceca5e0c2c8187c6e7b8fa618c)
定义方法和定义函数的方式一样,都使用def语句,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_64_6.jpg?sign=1739273831-kJn7ovJ7vBogqtyGpMoyYngUY1FalqEx-0-fc7ae19f69aa63c766320117253e6368)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_65_1.jpg?sign=1739273831-9VxZcQpIGlPZOkISuTNZiV2dPYlEUwMX-0-4354288b0655c7c3001eb9b0322e030a)
Logger类的作用是传入一个文件名(也可以不传,默认生成),如果该文件存在,则将屏幕打印的内容保存到一个TXT文件里,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_65_2.jpg?sign=1739273831-iIIZ6fbWqmNaNXMGjekBIyYHfQKf6En1-0-4308bf5e70e3a020193833945b1e0a83)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_65_3.jpg?sign=1739273831-noIDfPinRrhzdd70NnyeQh5r7qsPDJHT-0-13a8620412e4a046b0a2e1ac7973f1fa)
读者可以在E盘中找到一个名为example1.txt的文件,其中存放了打印出的内容,如图3-3所示。
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_66_1.jpg?sign=1739273831-2ZMSBvwSNX2QxBHKzcnpnQstGbkp4XzF-0-b80d7111ae8d15bf9003e95e4741f1b8)
图3-3 用于保存输出结果的自定义类文件输出示例