拜师教育第一阶段day7_python基础

第七章 面向对象

1.面向对象编程的好处:扩展性更强、可读性更好、简化编程过程。面向对象编程就是将数据和操作对应数据相关的方法封装到类对象中。

面向对象的基本功能包括:继承、多态、封装(python无法实现像其他高级语言一样的隐藏,此处的封装就是逻辑意义上的封装)等。 

2.面向对象与面向过程编程的区别与联系:面向过程一般针对简单、小规模的由动词描述的无需协作的过程,即根据实现步骤编写程序。面向对象适合编写大规模的程序。面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。 但是,具体到实现部分的微观操作(就是一个个方法),仍然需要面向过程的思路去处理。(遇到复杂问题,先从问题中找名词(面向过程更多的是找动词),然后确立这些名词哪些可以作为类,再根据问题需求确定的类的属性和方法,确定类之间的关系。) 

3.对象的变革是由于计算信息的数量和类型的逐步增多引发的,早期简单数据,后期数量增多出现数组,再到后来种类增多出现结构体(struct),在此基础上,考虑到数据要进行计算,于是,在原来的结构体上增添了可以处理相关数据的方法便产生了对象,即将不同类型的数据、方法(即类中函数)放到一起。

4.所谓的类就是为了创建一类对象而专门制作的对象模板,它将方法和属性打包在一起,对象就是所谓的从一个模子里刻出来的信息块,是类的实例。从一个类创建对象时,每个对象会共享这个类的行为(类中定义的方法,类对象中只保留代码信息),但会有自己的属性值(不共享状态)。更具体一点:“方法代码是共享的,属性数据不共享”。属性用来描述数据,方法(即函数)用来描述这些数据相关的操作。定义类的语法:

           class  类名(符合驼峰原则,每个单词首字母大写,首“字母、下划线”,其后数字也可):

                     类体()

5.类构造方法__init__():一个 Python 对象包含如下部分: id(identity 识别码) type(对象类型)value(对象的值) [属性(attribute)方法(method)]

__init__()第一个参数固定且必须为self(代指刚刚建好的这个实例对象,创建实例对象时系统会将对象的地址返回给self)——此方法为新建实例对象进行初始化工作(即为实例属性赋值)。可通过类名(init参数中除self之外的参数)调用构造函数。

__new__()方法用于创建对象。

6.实例属性即从属于实例对象的属性,一般在__init__函数中可通过形如self.name=name定义,在同一个类的其他方法中访问非私有属性时均可以self.实例属性名访问,再类的外部通过对象名.实例属性名访问。定义实例方法语法:

def 方法名(self [, 形参列表]):

       函数体

方法的调用格式为对象.方法名([实参列表])。定义实例方法时第一个参数必须为self来指代当前实例对象的地址,调用时self不需要显示写在参数列表上,由解释器自动传参。实例方法的代码放在类对象中,为所有实例对象共享。实例对象的方法调用本质如下图:

 

 

通过dir(o)可以获得该对象所有的属性与方法。此处要注意方法其实也是一个对象。o.__dict__可得对象的属性字典(即参数列表处对应的实参与形参)。想要判断对象属不属于指定的类可以通过isinstance(obj,class)进行判断。pass占位用空语句。注意方法也是属性,类型为‘method’,其名称处空间存储代码信息的地址。

7.函数与方法的区别:(I)都是用来完成一个功能的语句块,本质一样。(II)方法调用时,通过对象来调用。方法从属于特定实例对象,普通函数没有这个特点。 (III) 直观上看,方法定义时需要传递self,函数不需要。

 

8.在解释器执行class语句时就会创建一个类对象(即生产实例对象的模具)。类属性属于类对象,可以被由该类对象创建的所有实例对象共享。在类外可以通过类名.类变量名读取。

类方法是从属于类对象的方法,可以通过装饰器@classmethod定义:

@classmethod   #必须位于类方法的上一行

def 类方法名(cls(必须且固定在第一个,指代类对象本身),[其他参数])

       函数体

可以通过

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值