面向对象技术

一个类占有一个独立的空间,类中的属性叫做类变量,类中的函数,叫做类的方法。

类(Class):也可以成为类对象。类对象中包含了一批实例对象共有的属性和方法。

类变量:定义在类中且在函数体之外的变量。类变量在所有的实例变量中是共享的,类变量修改了,所有实例对象读取到的值都会修改。

实例变量:定义在类的实例方法中的变量,只作为当前实例的属性。

数据成员:类变量或者实例变量,以及用于处理类及其实例对象的相关的数据的统称。

方法:类中定义的函数。包含实例方法,类方法,静态方法。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。其实只是在派生类中添加了同名方法,以至于查询方法时不会再向基类查询

继承:即一个派生类(derived class)继承基类(base class)的属性和方法。继承也允许把一个派生类的对象作为一个基类对象对待。(就是说派生类还可以再派生孙子类)

实例化:创建一个类的实例,类的具体对象。在实例对象开辟一个空间,并为实例对象添加对类的引用。并没有复制类中的属性和方法到实例对象中。

实例对象:通过类定义的数据结构实例。

方法(与实例化和继承混合看)在python中没有方法重载,因为本来函数的参数就是可以省略的。后定义的函数会覆盖先定义的同名方法。

实例方法:只能通过实例对象调用,因为实例方法第一个定义的参数必须是实例对象本身。

类方法:定义类方法,要使用装饰器@classmethod,定义的第一个参数一定是类的引用,不过可以通过类或者实例的引用。

 

静态方法:定义静态方法使用装饰器@staticmethod,没有默认的必须参数,可以通过类和实例直接调用。静态方法就如同类外函数一样。若在静态函数内访问类变量也是需要 类名.变量名 的方式访问。

实例化和继承的内存操作(最重要)

实例化:为实例化对象新开辟一个空间。并为实例对象添加到类对象的引用,用于变量的查找。不过并没有为实例对象复制任何内容,这也就大大节省了空间。实例对象可以自定义自己的空间,但是不能修改类对象空间。

通过类名,可以调用类对象的类方法和静态方法,实例方法无法通过类名调用,因为实例方法的self必须是实例对象。类方法中self表示类对象。

通过实例对象,可以访问类对象的所有属性,调用类对象的所有方法。但是不能修改类对象中的属性和方法的指向(因为属性和方法都是引用变量),不过可以修改属性和方法指向的数据。

继承:继承的过程和实例化的过程相似,也是为派生类对象开辟一个独立的空间,并为派生类对象天剑了到基类对象的引用,用于变量查找。没有为派生类对象复制任何内容,大大节省了空间。派生类对象可以自定义自己的空间,为派生类对象添加派生类的类变量,实例方法,类方法、静态方法。

类的继承
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

除了在前面继承时的内存操作必须要掌握外,你还需要知道

在python中继承中的一些特点:

1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。

2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数

3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中

 

转载于:https://www.cnblogs.com/windyrainy/p/10585075.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值