第五章 面向对象高级编程
yipyk
这个作者很懒,什么都没留下…
展开
-
【Python进阶】5-4 __slots__ / __call__
文章目录1、前言2、使用__slots__3、使用__call__ 1、前言 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。 先定义class: class Student(object): pass 然后,尝试给实例绑定一个属性: >>> s = Student() >>&...原创 2020-02-28 15:19:52 · 247 阅读 · 0 评论 -
【Python进阶】5-3 python中 @property
文章目录使用@property小结任务 使用@property 在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()...原创 2020-02-28 13:49:26 · 163 阅读 · 0 评论 -
【Python进阶】5-2 数学运算 / 类型转换
文章目录1、数学运算2、类型转换 1、数学运算 Python 提供的基本数据类型 int、float 可以做整数和浮点的四则运算以及乘方等运算。 但是,四则运算不局限于int和float,还可以是有理数、矩阵等。 要表示有理数,可以用一个Rational类来表示: class Rational(object): def __init__(self, p, q): sel...原创 2020-02-28 10:42:12 · 1369 阅读 · 3 评论 -
【Python进阶】5-1 __str__() / __repr__() / __cmp__() / __len__()
python中 __str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): ...原创 2020-02-28 09:34:57 · 154 阅读 · 0 评论