![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=1739329161-HZ9Cg5cWEzfIgwtw9ril7UDSGTjLRdcm-0-51c6defc3126c54542cf1a820ed0c9f5)
定义方法和定义函数的方式一样,都使用def语句,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_64_6.jpg?sign=1739329161-L1E18XGLEE0oGvTmEMthVg9OyccmRwql-0-dbc09c7d585ba2d9820500e992999872)
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_65_1.jpg?sign=1739329161-9pDnG5QAuRBx9nbhsaiwy9AyAfDIjw1k-0-2db0a3a740c3e57b7c01a8b5bd567ccd)
Logger类的作用是传入一个文件名(也可以不传,默认生成),如果该文件存在,则将屏幕打印的内容保存到一个TXT文件里,示例如下:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_65_2.jpg?sign=1739329161-EUjgMoU00ntZxmreoUVJx8WIQapXnzK1-0-69fa118dcad752992575aeb74de9f706)
输出结果:
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_65_3.jpg?sign=1739329161-L6tOZXgQPofu43uBU7FkyPAjN3bJtLZf-0-3d0753f3225addf57f047641602ef5f9)
读者可以在E盘中找到一个名为example1.txt的文件,其中存放了打印出的内容,如图3-3所示。
![](https://epubservercos.yuewen.com/ED1E6A/20118172701012106/epubprivate/OEBPS/Images/40923_66_1.jpg?sign=1739329161-MGGSA8NFlXsvUBbWkVHp5AYl3S4g5hoT-0-751e39693f45c35aef65cd49a4ed11f4)
图3-3 用于保存输出结果的自定义类文件输出示例