Python-图文课件11

Python-图文课件11

ID:82006555

大小:4.08 MB

页数:6页

时间:2022-07-06

上传者:胜利的果实
Python-图文课件11_第1页
Python-图文课件11_第2页
Python-图文课件11_第3页
Python-图文课件11_第4页
Python-图文课件11_第5页
Python-图文课件11_第6页
资源描述:

《Python-图文课件11》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

第十一章面向对象编程

1面向对象classVehicle:def__init__(self):self.movable=Trueself.passengers=list()self.is_running=Falsedefload_person(self,person:str):self.passengers.append(person)defrun(self):self.is_running=Truedefstop(self):self.is_running=Falsecar=Vehicle()bike=Vehicle()car.load_person('olddriver')#对象加一个点再加上方法名可以调用相应的方法car.run()print(car.passengers)print(car.is_running)print(bike.is_running)类对有共性的事物的抽象“汽车的蓝图”对象抽象的实例化“不同颜色的汽车”面相过程还是面向对象各有优劣按照需求使用

2类classVehicle:class_property=0#没有self,并且写在方法外,这是类属性def__init__(self):temporary_var=-1#写在方法里,但是没有self,这是一个局部变量self.instance_property=1#有self,这里创建了一个实例属性Vehicle.class_property+=1#操作类属性需要写类名类名属性属性只要直接赋值就可以创建可以分为类属性和实例属性类属性类似全局变量,实例属性每个对象之间是独立的用类名访问类属性,用类的实例去访问实例属性car3=Vehicle()print(car3.class_property)#错误!应该用类名访问,但是也能返回正确的值car3.class_property=0#错误!print(Vehicle.class_property)#正确car3=Vehicle()#创建了一个Vehicle实例,它有一个类属性class_propertyprint(car3.class_property)#尝试读取car3的实例变量class_property但是没有找到,然后才从类属性找到返回car3.class_property=0#这是个赋值操作,直接创建一个实例属性class_property并赋值为0print(Vehicle.class_property)#直接读取Vehicle类的类属性class_property

3方法静态方法跟正常的函数定义完全等价类方法有一个隐式参数cls表示类名只能访问类属性和其他类方法实例方法有一个隐式参数self表示自身可以访问这个对象的所有属性和方法classVehicle:class_property=0def__init__(self):#__init__是一个实例方法,但是它很特殊temporary_var=-1self.instance_property=1Vehicle.class_property+=1self.passengers=list()defload_passengers(self,new_passengers):#load_passengers也是一个实例方法self.passengers.extend(new_passengers)car1=Vehicle()car1.load_passengers(['alice','bob'])print(car1.passengers)

4特殊的实例方法初始化和析构__init__会在对象构造的时候执行__del__会在对象删除的时候执行转字符串__str__返回对象的字符串表示在转为str的时候被隐式调用实现运算符实现自定义比较逻辑在相应运算的时候被隐式调用方法名简介__init__(self[,...])在实例创建后会被调用__del__(self)在实例析构时会被调用__str__(self)在把实例转换成字符串时调用,用于输出人类可读的内容object.__lt__(self,other)object.__le__(self,other)object.__eq__(self,other)object.__ne__(self,other)object.__gt__(self,other)object.__ge__(self,other)这些方法可以实现类的运算符,例如x

5小结面向对象相比之前的面向过程来说是一种全新的思考方式面向对象的核心在于把有共性的实体抽象为一个类,类可以实例化为一个对象

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
最近更新
更多
大家都在看
近期热门
关闭