一、回顾
1、面向对象
①写明白类
类是一个对某一事物的描述,对属性和方法的封装
class 类名:
def __init__(self , x,y,z,):
#实例变量
var = 123 #类变量
self.x == x
self.y == y
self.z == z
#实例方法,给对象用的
def method(self):
pass
#类名.method(obj)调用类里面的方法
@staticmethod
def stamethod():#静态方法 >函数
pass
@classmethod >方法
def clsmethod(cls):
pass
②明白对象是什么
什么都是对象,
在编程的世界里,对象是由类创建,
类名() >创建对象,实例化
此时默认的调用方法 new()开辟内存 init()
对象能够使用的方法都在类中,对象的属性一般都写在__init()
class Stu:
def __init__(self,name,age,sex):
self.name =name
self.age= age
self.sex=sex
s= Stu("tonm","18","男")
print(s.sex)
程序输出结果为:
男
对象最主要的意义就是对数据进行封装。
@property
def age(self):
return 10
在类里面,把方法变成属性。
类可以互相继承:
class Base: #父类
pass
class Person(Base): #子类,可以继承多个父类
#查找顺序:先找自己的,再找第一个,再找第二个
pass
1、依赖:在执行某个方法的时候把另一个类的对象作为参数传递进来。
2、关联关系:在一个对象中绑定另外一个类的对象,解耦。
两个对象之间如果是紧密联系,称为耦合性强。
约束:
1、写一个父类,在父类中写出要被约束的方法,在该方法中写raise NotImplementedError()
2、写一个抽象类,子类重写抽象类中的抽象方法。
反射:
经典类的MRO
类的深度继承顺序
从左到右,一条道走到黑(树形结构,深度遍历)
广度优先遍历:一层一层的。
新式类的MRO C3算法
1、拆分
2、合并
模块
1、random
from random import randint
import random
print(random.randint(10,20))#随机产生一个整数
print(random.random()) #随机产生一个0-1之间的小数
print(random.uniform(10,20))#随机产生10-20的随机小数
lst=["打赏","高正","哈哈"]
random.shuffle(lst)#随机打乱列表顺序,扑克牌
print(lst)
s = random.choice(lst)#从列表中随机输出一个
print(s)
m = random.sample(["打赏","高正","哈哈"],2)#随机从列表中抽取两个
print(m)
程序需输出结果为;
11
0.8474198657822302
11.992369822435501
['打赏', '高正', '哈哈']
打赏
['哈哈', '高正']
2、collections模块