Python类和对象-给你介绍个对象?

文章目录

  • 面向对象
  • 类的定义
  • 类的实例化
  • 类的方法
  • 类的特殊方法
  • 类的继承
  • 类的关系

面向对象


Python类和对象-给你介绍个对象?_第1张图片
害,说得像是我有对象一样。
此对象非彼对象,面向对象(Object Oriented)是一种编程的思想,而不是一种编程语言,而Python也是支持面向对象的语言。

面向对象的核心是抽象、继承、多态。 在面向对象思想中,一切皆是对象,每个对象都有它的属性个方法,每个对象都可以通过消息互相交互。

本文将侧重Python中类和对象的使用,更多面向对象思想可参考设计模式系列博客。

类的定义


语法
class ClassName(father class name):
    
    ...
    

  • ClassName表示自定义类的名字
  • father class name 是继承父类的名字
  • statement是类成员表达式,可以是属性或方法

举例

class TeatA(object):  # 类名TestA
    value = 0  # 属性
    def printvalue(self):  # 方法
        print(self.value)

特别注意的是,类属性除了在class下显示的定义外,也能在方法中隐形的定义:

class TestB(object):
    def printvalue(self):
        self.value=0  # 隐形定义类属性value
        print(self.value)

类的实例化


实例化就是创建一个类的对象。定义一个类知识造出一个类型,这个类型只有实例化成对象才有真正的实用意义。

语法:直接调用类名。

a = TeatA()  # 使用类TestA实例化一个对象a
a.printvalue()  # a拥有TestA定义好的属性和方法
b = TestB()  
b.printvalue()

运行结果
Python类和对象-给你介绍个对象?_第2张图片
内置类型的实例化
实际上Python任何类型都是面向对象意义上的类,所以都可以使用通用的实例化方法。
Python类和对象-给你介绍个对象?_第3张图片

类的方法


类的方法其实就是定义在类内部的函数,只不过函数的首个参数必须是self(代表自身)。类方法里面调用类本身的属性和方法都必须加上self
私有方法:私有方法(同private)就是只能被类中的其他方法调用,不能被类外面调用,通过两个下划线开头来定义,私有属性同理。
Python类和对象-给你介绍个对象?_第4张图片
Python类和对象-给你介绍个对象?_第5张图片

类的特殊方法


初始化函数__init__
初始化函数是在类被实例化为对象时调用的函数
Python类和对象-给你介绍个对象?_第6张图片

析构函数__del__
析构函数是在对象被del操作从内存中卸载时所调用的函数
Python类和对象-给你介绍个对象?_第7张图片

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

操作符方法
操作符方法让类支持加减乘除等各种运算的方法。

名称 运算符 运算符方法 说明
+ __add__ 两个对象相加
- __sub__ 两个对象相减
* __mul__ 两个对象相乘
/ __div__ 两个对象相除
取模 % __mod__ 返回除法的余数
左移 << __lshift__ 把一个数的比特向左移一定数目
右移 >> __rshift__ 把一个数的比特向右移一定数目
按位与 & __rand__ 数的按位与
按位或 | __ror__ 数的按位或
按位异或 ^ __xor__ 数的按位异或
按位翻转 ~ __invert__ x的按位翻转
小于 < __lt__ x
大于 > __gt__ x>y返回x是否大于y
小于等于 <= __le__ x<=y返回x是否小于等于y
大于等于 >= __ge__ x>=y返回x是否大于等于y
等于 == __eq__ x==y比较对象是否相等
不等于 != __ne__ x!=y比较两个对象是否不想等
自身加 += __iadd__ x+=y将y加到x中去
自身减 -= __isub__ x-=y将y从x中减去
切片 x[i:j] __getlice__ 访问x的i到j部分z
下标访问 x[i] __getitem__ 通过i下标访问x

只要重载了对应运算符方法,那么类就能使用对应运算符了。
Python类和对象-给你介绍个对象?_第8张图片

类的继承


继承(泛化)是使一个类获得另一个类的所有属性和方法的能力,被继承的类称为父类或基类,继承的类称为子类或派生类。

语法
class (superclass1,superclass2,...)

Python类和对象-给你介绍个对象?_第9张图片
多重继承
指一个子类继承了好几个父类,多重继承颇有争议,在C++中受人诟病,Java中用接口取代了,不过Python仍支持多重继承。
Python类和对象-给你介绍个对象?_第10张图片
重载
指子类的属性名或方法名与父类相同时,子类的会覆盖掉父类的。
Python类和对象-给你介绍个对象?_第11张图片
多重继承的重载
重载不只存在于子类重载父类,害存在于多重继承时父类间的重载。
当父类们的属性和方法相同时,重载规则是从右向左重载。
Python类和对象-给你介绍个对象?_第12张图片

类的关系


Python中类的关系除了上面讲的继承(泛化)外,还有依赖、关联、聚合、组合。java有接口的话还有实现关系。
关于uml的知识,可参考一文掌握UML类图:PlantUML实操分享

依赖:类的某个方法以被依赖的类作为其参数。
Python类和对象-给你介绍个对象?_第13张图片
关联:类作为另一个类的成员属性
Python类和对象-给你介绍个对象?_第14张图片
聚合和组合:类的实例作为另一个类的属性,特殊的关联。
Python类和对象-给你介绍个对象?_第15张图片
Python系列博客持续更新中

原创不易,请勿转载本不富裕的访问量雪上加霜
博主首页:https://wzlodq.blog.csdn.net/
微信公众号:唔仄lo咚锵
如果文章对你有帮助,记得一键三连❤

你可能感兴趣的:(Python,python,面向对象编程,类,多态,继承)