面向对象

一、对面向对象的理解
1、面向对象的编程—object oriented programming

简称:OOP,是一种编程的思想。OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数。面向对象的出现极大的提高了编程的效率,使其编程的重用性增高。
2、python面向对象的重要术语:

1、多态(polymorphism):一个函数有多种表现形式,调用一个方法有多种形式,但是表现出的方法是不一样的。

2、继承(inheritance)子项继承父项的某些功能,在程序中表现某种联系

3、封装(encapsulation)把需要重用的函数或者功能封装,方便其他程序直接调用

4、类:对具有相同数据或者方法的一组对象的集合

5、对象:对象是一个类的具体事例

6、实例化:是一个对象事例话的实现

7、标识:每个对象的事例都需要一个可以唯一标识这个事例的标记

8、实例属性:一个对象就是一组属性的集合

9、事例方法:所有存取或者更新对象某个实例一条或者多条属性函数的集合。

10、类属性:属于一个类中所有对象的属性,

11、类方法:那些无须特定的对性实例就能够工作的从属于类的函数。
3、函数和面向对象编程的区别

相同点:都是把程序进行封装、方便重复利用,提高效率。

不同点:函数重点是用于整体调用,一般用于一段不可更改的程序。仅仅是解决代码重用性的问题。

而面向对象除了代码重用性。还包括继承、多态等。使用上更加灵活。
二、封装、继承、多态
1、封装(Encapsulation)

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。
2、继承(Inheritance)

继承,面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容。
三、面向对象的各种方法
1、静态方法 (用这个装饰器来表示 @staticmethod )

意思是把 @staticmethod 下面的函数和所属的类截断了,这个函数就不属于这个类了,没有类的属性了,只不是还是要通过类名的方式调用
2、类方法 (用这个装饰器来表示 @classmethod)

类方法只能访问类变量,不能访问实例变量
3、属性方法 (用这个装饰器表示 @property)

把一个方法变成一个静态属性,属性就不用加小括号那样的去调用了
四、高级面向对象
1、成员修饰符

python的类中只有私有成员和公有成员两种,不像c++中的类有公有成员(public),私有成员(private)和保护成员(protected).并且python中没有关键字去修饰成员,默认python中所有的成员都是公有成员,但是私有成员是以两个下划线开头的名字标示私有成员,私有成员不允许直接访问,只能通过内部方法去访问,私有成员也不允许被继承。
2、特殊成员

1.init

__init__方法可以简单的理解为类的构造方法(实际并不是构造方法,只是在类生成对象之后就会被执行),之前已经在上一篇博客中说明过了。

2.del

__del__方法是类中的析构方法,当对象消亡的时候(被解释器的垃圾回收的时候会执行这个方法)这个方法默认是不需要写的,不写的时候,默认是不做任何操作的。因为你不知道对象是在什么时候被垃圾回收掉,所以,除非你确实要在这里面做某些操作,不然不要自定义这个方法。

3.call

__call__方法在类的对象被执行的时候(obj()或者 类()())会执行。

4.int

__int__方法,在对象被int()包裹的时候会被执行,例如int(obj)如果obj对象没有、__int__方法,那么就会报错。在这个方法中返回的值被传递到int类型中进行转换。

5.str

__str__方法和int方法一样,当对象被str(obj)包裹的时候,如果对象中没有这个方法将会报错,如果有这个方法,str()将接收这个方法返回的值在转换成字符串。

6.add
7.dict

__dict__方法在类里面有,在对象里面也有,这个方法是以字典的形式列出类或对象中的所有成员。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值