课程主要内容有三块,分别是(1)动态添加方法和属性,(2)重载运算符 (3)property
(1)动态添加方法和属性
重点内容和讲解已经全在注释里面了
from types import MethodType # 动态添加方法时必须导入!类似于之前偏函数的概念
class Car(object): # 创建一个猫猫类,其中没有奔跑方法
pass # 创建空类以更好展示
car_1 = Car() # 实例化一个猫猫
def cargo(self): # 在类之外定义一个方法!以此来展示动态添加方法的概念!
print("猫猫在奔跑!") # 所谓的动态 就是在实例化对象之后仍然能添加属性方法,侧面体现了动态语言的灵活性
car_1.go = MethodType(cargo, car_1) # !利用我们导入的MethodType(在外定义方法名,实例对象名)函数进行动态添加
car_1.go() # 这样就可以直接用点语法进行调用啦!
(2)重载运算符
重点内容和讲解已经全在注释里面了
class Student(object): # 首先,创建一个类
def __init__(self, cj, name): # 构造函数添加属性,添加cj(成绩)和name(名字)以更好展现运算符重载的内容
self.cj = cj
self.name = name
def __pow__(self, other): # 对求冥进行运算符重载
return self.cj ** other.cj
def __cmp__(self, other): # 对比较进行运算符重载
return self.cj == other.cj
student_1 = Student(5, "鱼鱼") # 实例化几个对象进行实验
student_2 = Student(2, "yuyu")
student_3 = Student(4, "鱼鱼")
print(student_1 ** student_2) # pow的
print(student_1 == student_3) # cmp的
print(student_1 == student_2)
(3)property
画了简单的思维导图
全部手写笔记: