序列化:将逻辑上存在的对象转换字节,进行传输和保存
反序列化:将字符或字节恢复原来的数据结构
持久化:保存在磁盘中 反持久化:
load()持久化 loads()反序列化 dump()持久化相关 dumps序列化
类名称:采用大驼峰命名UserName
面向对象:
class A【A是类名称】(object):回车 魔术方法def __init__(self,name,age): self.name=name self.age=age
实际化对象:【封装,继承,多态】
封装:类的成员封装在类中。为了安全,往往对属性进行私有化,然后提供公开的方法进行访问
property():函数重载,存在多个函数名相同,但参数或参数类型不同,会使调用时会自动调用对应的函数。
继承:class S(F【父类】,M【也是父类】)
方法重写:父类的方法不能满足子类的需求,因此在子类重新定义一个与父类方法名相同的方法,我们把这种情况叫方法重写【方法覆盖】
在Son中也存在__init__,那么要在代码第一行手动调用父类
面向对象矩形周长 ''' class Shape(object): def __init__(self,area): self.area=area class Rect(Shape): def __init__(self,width,height): super().__init__(area=20) #super是指针,指向父类 self.width = width self.height = height def num(self): if self.width*self.height==self.area: return f"正确" else: print("错误") def perimeter(self): return f"周长是{2*(self.width+self.height)}" r=Rect(width=int(input("边2:")),height=int(input("边1:"))) #输入两个边长 s=Shape(area=20) print(s.area) print("边1是",r.height) print("边2是",r.width) print(r.num()) #检测边长是否正确 print(r.perimeter()) #输出周长 ''' 面向对象汽车品牌颜色和座位数 ''' class Vehicle(object): def __init__(self,brand,color): self.brand=brand self.color=color def show(self): return f"品牌是{self.brand},颜色是{self.color}" class Car(Vehicle): #继承了Vehicle的def的函数 【print(v.show())=print(c.show())】 def __init__(self,seat): super().__init__(brand="奔驰",color="黑色") self.seat=seat def s(self): if 7>=self.seat>=4: return f"有{self.seat}个位" elif 4>self.seat>0: return f"{self.seat}个位有点少" else: print("错误") v=Vehicle(brand="奔驰",color="黑色") c=Car(seat=int(input("座位数:"))) #输入座位数 print(v.show()) #输出品牌和颜色 print(c.s()) #输出座位数 '''