当前位置:网站首页>Pyhton面对对象
Pyhton面对对象
2022-08-08 22:31:00 【On3_Thing】
类定义
类似于C++,Python的面向对象的机制:
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
方法:类中定义的函数。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
局部变量:定义在方法中的变量,只作用于当前实例的类。
实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
实例化:创建一个类的实例,类的具体对象。
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
init(构造函数)
def init(self):
self.data = []
__init__也可以有参数
在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。
双下划线"__"定义私密属性(类方法和类属性),在类外部无法直接访问
继承
python同样支持类继承,如:
class people为一个类
如果有个名叫student的类要继承其内部属性,可以这样表述:
class student(people)
继承也分为单继承和多继承,上面这个例子就是单继承
多继承形如class modename(base1,base2,base3…)
注意圆括号内父类的顺序,若父类中有相同的方法名,子类使用时未指定,默认从左到右。
方法重写
当父类中的方法不能满足子类时,可以进行方法重写。
super() 函数是用于调用父类(超类)的一个方法。
class Parent: # 定义父类
def myMethod(self):
print (‘调用父类方法’)
class Child(Parent): # 定义子类
def myMethod(self):
print (‘调用子类方法’)
c = Child() # 子类实例
c.myMethod() # 子类调用重写方法
super(Child,c).myMethod() #用子类对象调用父类已被覆盖的方法
此处代码转载菜鸟教程
类的专有方法
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__pow__: 乘方
运算符重载
python也支持类重载。
转载于菜鸟教程
class Vector:
def init(self, a, b):
self.a = a
self.b = b
def str(self):
return ‘Vector (%d, %d)’ % (self.a, self.b)
def add(self,other):
return Vector(self.a + other.a, self.b + other.b)
v1 = Vector(2,10)
v2 = Vector(5,-2)
print (v1 + v2)
运行结果为 Vector(7,8)
边栏推荐
猜你喜欢
随机推荐
Roson的Qt之旅#108 QML ListView的布局、方向和堆叠顺序
2020-03-09
Go 1.19 发布!
BSV 上高效的多方公平交易
你的下一台电脑何必是电脑,探索不一样的远程操作
IMConversation 或 IMUser 类型数据
每天记录学习的新知识 :ParameterizedType +
论文阅读 (66):Explainable Deep Feature Embedding Using Multiple Instance Learning for Pathological Image
Adb pull 手机文件到电脑上
深耕“有效私域”,雀巢集团携手腾讯重塑零售数字化体验
C盘的空间管理
一个英文字母,一个中文各占多少字节
支付宝 To 理财排行名称修改
win10电脑安装Photoshop cs7软件版本
SVN Update和Commit执行文件
Sql注入以及靶场演示
4399IT运维实习生面试经历
混合办公说来就来,你找到适合的安全防护产品了么
Matlab的下载
mysql 忘记root密码后 ERROR 1054 (42S22): Unknown column 'Password' in 'field list'