亲宝软件园·资讯

展开

《自拍教程36》段位三_Python面向对象类

zipython 人气:0
函数只能面向过程,来回互相调用后顺序执行, 简单的编码项目,还能应付的过来, 复杂的大型项目,调用多了,就会乱。
如何才能不乱呢,可尝试下, 面向对象类的概念, 将现实世界的事物抽象成对象,将现实世界中事物的关系抽象成类, 即要秉着“万物皆对象,一切皆可归类”的中心思想, 去建立你的代码模型。
一听特别晕乎,我也一样, 我学Python的时候,写了将近大半年的面向过程函数, 由于我也无法深入理解到面向对象类的概念, 当时就是无法将代码写成面向对象类的形式。
直到自己去慢慢学习面向对象类的概念,慢慢写大型一点的软件项目, 秉着“万物皆对象,一切皆可归类”的中心思想, 才恍然发现,面向对象类,真是好东西, 比函数严谨多了。。。。。
##### 初级面向对象类的建模 小项目或小工具的代码实现,模型比较简单: 脑海里虚拟一个空白的世界,想象下这个世界有哪类事物(一般是名词), 比如我们常用的包括:学生类,员工类,课程类等。 比如我们本章节介绍的下载的脚本,如果要进行面向对象类的实现, 肯定是可以的, 虽然实际编码过程中,我们可能用函数实现就足够了, 但是秉着“万物皆对象,一切皆可归类”的中心思想。 可创建一个下载器类, 下载器的类初始化(新建一个对象)是接入一个url, 代表一个具备下载某个url的实例对象。 如下: ```python # coding=utf-8 import os import requests class FileDownloader(): #类名 def __init__(self, url): #类的初始化 self.url = url def download_file(self): s = requests.get(self.url) file_name = self.url.split("/")[-1] with open(file_name, "wb") as hf: hf.write(s.content) file_path = os.path.abspath(file_name) print("file downloaded to %s" % file_path) return file_path if __name__ == '__main__': fd_obj = FileDownloader("http://www.zipython.com/images/angel.mp3") # FileDownloader类初始化,成fd_obj对象 fd_obj.download_file() # 一般对象才能调用方法(函数) ```
##### 高级面向对象类的建模 大项目的代码实现,模型比较复杂, 此类建模,建议还是由专业软件比如UML等。
>类代表是具备相同属性或方法的一种事物类别, >这种类别,一般不是真实的事物,只是虚拟出来的进行归类而已。 >所以类,一般不具有属性和方法, >但是对象就是真实的事物,不然如何叫实例化对象呢, >所以对象,是具备属性和方法的。 >以上同学有疑问?我定义类的时候,不是写了属性和方法吗? >注意咯,定义类,一般用到self, self其实是一个默认的对象, >所以:一般是实例化成对象后,才具备属性和方法(函数), >对于测试人员,一般不鼓励使用无需实例化的静态方法。 更多更好的原创文章,请访问官方网站:[www.zipython.com](https://www.zipython.com) 原文链接:[https://www.zipython.com/#https://img.qb5200.com/download-x/detail?id=b685d02527274d0ca155a84fcc569d3e](https://www.zipython.com/#https://img.qb5200.com/download-x/detail?id=b685d02527274d0ca155a84fcc569d3e) 也可关注“武散人”微信订阅号,随时接受文章推送。 ![](https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy56aXB5dGhvbi5jb20vaW1hZ2VzL3dlY2hhdC5wbmc?x-oss-process=image/format,png)

加载全部内容

相关教程
猜你喜欢
用户评论