今天说一下面对对象编程基础,虽然其实我最近都在看爬虫,看关于爬虫的一切知识,json,xpath啥的。
说到对象,可能有人就瞪起眼睛了,但是此对象非彼对象,你们想的对象还是要自己找的,而我说的对象可以自己创建。
首先先说一下关于对象的定义

把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。
然后再看一段知乎大佬关于对象的定义,通俗易懂.
Python中一切都是对象,函数是对象,类是对象,变量时对象,字符串是对象,列表和元组也是对象,他的所有一切都是对象。

所以说,其实面对对象也就是三种要素,分别是封装,继承和多态。

类和对象

说真的,类和对象的关系说简单也简单,说复杂也复杂。类是对象的卖家图,而对象是类的买家图。类是一种抽象的概念,而对象则是一个具体的事物。这里就有人问了,什么是对象呢?对象到底是什么。在面对对象编程中,所有的事物都可以看作是对象,一切皆为对象,而对象拥有属性和行为,并且每一个对象都是单独的个体,都是独一无二的。而类呢?对象类似于孩子,而类就像是爹妈一样,只要有对象就会有类,而对象一定属于某一个类型。而我们把许许多多的具有共同特征的对象的属性和行为提取出来,那么就可以定义这个类了。

定义类

在python中可以通过使用class来定义类。这里我们引用一下之前写过的代码。
class S(): #__init__()方法是一种特殊的方法,被称为类的初始化方法,当创建这个类的实例时就会调用该方法#self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数
def __init__(self,code):
self.code=code #类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
def printinfo(self):
print(self.code) #self代表类的实例,表示当前对象的地址 self.__class__ 则指向类
def test(self,ssss):
print(self)
print(self.__class__)

写在类中的函数,我们通常称之为(对象的)方法,这些方法就是对象可以接收的消息。

创建和使用对象

def main():
a = S('aa')
a.printinfo()
a.test("python")
if name == '__main__':
main()

实际上我们可以设置类里面的属性是否为私有函数,但是实际上开发中是不实用的,因为你设置了私有属性,别人调用起来就比较麻烦了。
然后呢,在说一下重点吧。众所周知,面对对象最重要的三个要素,正如前面所提到的,封装,继承,多态。简单说一下封装,封装就像是字面意思那样,将什么东西封起来,并且把他装在什么地方。
我们可以通过封装把一些东西进行隐藏,只让别人访问一些我们提供的接口。我们对类的定义其实就是将数据和操作封装起来,然后我们创建对象后,通过给对象发送一个信息,然后执行里面的方法,就可以调用类里面的代码了,比如说一个小游戏,我们只需要点点点就可以了,而不需要知道实际上游戏进行了哪些操作,这既是封装。

最后修改:2021 年 04 月 19 日 09 : 16 PM
如果觉得我的文章对你有用,请随意赞赏