汽车租赁python面向对象_PYTHON1.面向对象_day03

课程:Python面向对象

进度:day3

上次内容回顾

1. 多态

1)什么是多态:同一个方法,在不同

子类中有不同的表现

2)方法的重写来实现

3)保持程序的扩展性、灵活性

2. 面向对象的技术特性

1)构造方法与析构方法

a)构造:__init__()

调用时机:对象被创建时自动调用

作用:创建对象属性,并赋值

注意:子类构造方法显示调用父类构造

方法

b)析构方法:__del__()

调用时机:对象被销毁时调用

作用:对象销毁时执行清理操作

2)object类:所有类最终的父类

如果类定义时没有指定父类

默认从object中继承

__base__查看父类

3)super()和issubclass()函数

super(): 获得父类的绑定

两种格式:super()  只能在类方法中使用

super(type, obj) obj必须是type示例化的对象

issubclass():判断某个是不是另一个类的子类

格式:issubclass(cls, cls_or_tuple)

4)多重继承:一个类有多个父类

MRO: 方法解析顺序,__mro__

从下至上,从左至右

3. 函数重写:让对象操作更方便

1)对象转字符串函数

str(): __str__(),返回字符串给人阅读

repr():__repr__(),返回字符串给解释器阅读

2)内建函数

abs(): __abs__()

len(): __len__()

reversed(): __reversed()__

round():__round()__

3)数值转换函数

int(): __int__()

float(): __float__()

complex(): __complex__()

bool(): __bool__()

4. 属性操作函数

getattr(obj, name):获取对象属性

setattr(obj, name, value):设置某个属性值

hasattr(obj, name):判断对象有没有某个属性

delattr(obj, name):删除某个属性值

作业:见account.py

今天内容

1. 可迭代对象

1)什么是迭代器

2)代码特征:重写__iter__()方法返回可迭代对象

重写__next__()方法获取下一个元素

3)__next__()方法,实现迭代器协议

如果有下一个元素,则返回

如果没有下一个元素,抛出StopIteration异常

4)示例:见myiter.py

1 # myiter.py

2 # 通过函数重写,实现自定义迭代器

3 class MyIter:

4 #用列表初始化对象

5 def __init__(self, lst):

6 self.data = lst #lst是列表

7 self.cur_index = 0 #计数器

8

9 def __iter__(self):# 返回可迭代对象

10 return MyIter(self.data)

11

12 def __next__(self):# 获取下一个元素

13 if self.cur_index >= len(self.data):

14 raise StopIteration #抛出异常

15 else:

16 i = self.cur_index #记录计数器

17 self.cur_index += 1 #计数器加1

18 return self.data[i] #返回元素

19

20 if __name__ == "__main__":

21 myiter = MyIter(range(1,10))

22 for x in myiter:

23 print(x, end="")

24

myiter.py

2. 运算符重载

1)什么是运算重载:自定义类中,重写

某些方法,重写后就可以对对象进行

某些运算符操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值