day22面向对象笔记

# 先定义模子,来描述一类事物
# 具有相同的属性和技能叫做类
# 定义类
class Person:   # 类名
    def __init__(self,name,sex,job,hp,weapon,ad):
    # 必须叫这个名字,不能改变的,所有的在一个具体任务出现之后拥有的属性
    # 都可以写在这里
    self.name = name
    self.sex = sex
    self.job = job
    self.hp = hp
    self.weapon = weapon
    self.ad = ad
    # 定义类的方法
    def attack(Dog):
        Dog.hp -= self.ad
        print(f"{self.name}攻击了{Dog.name}{Dog.name}血量剩余{Dog.hp}")
    
# 实例化:
# 通过类获得一个实例的过程叫实例化
alex = Person('alex','male','法师','100','法杖','100')    
# alex 就是一个对象 alex = Person()的过程是通过类获取一个对象的过程
    
# 类名()会自动调用类中的__init__()方法

# 实例化所经历的步骤:
    # 1.类名() 之后的第一件事儿:开辟一块内存空间
    # 2.调用__init__把内存地址作为self参数传入到函数内部
    # 3.所有的这一个对象的需要使用的属性都需要和self相关联起来
    # 4.执行完init逻辑之后

# 实例化过程图
![](https://www.icode9.com/i/l/?n=20&i=blog/2205193/202107/2205193-20210701101452746-329923852.png)
![](https://www.icode9.com/i/l/?n=20&i=blog/2205193/202107/2205193-20210701101520068-1089509394.png)



# 类和对象之间的关系:
    # 类 是一个大范围 是一个模子 它约束了事物有哪些属性 但是不能约束具体的值
    # 对象 是一个具体的内容 是模子的产物 它遵循了类的约束 同时给属性赋上具体的值

# Person是一个类:alex是类的对象
# 类有一个空间,存储的是定义在class 中的所有名字
# 每一个对象又有自己的空间,通过对象.__dict__就可以查看这个对象的属性

# 修改列表\字典 中的某个值,或者是对象的某一个属性都不会影响这个对象\字典\列表所在的内存空间,地址都不会变
# 字典存储和修改的过程图

# 类的属性的增 删 改 查
alex.money  =  1000000
del alex.money
alex.ad = 101
print(alex.hp)

# 类调用实例化整个过程图

字典修改存储过程图

day22面向对象笔记

实例化过程图

day22面向对象笔记

定义类和实例化完整图

day22面向对象笔记

上一篇:惠普HP LaserJet Enterprise 500 M551xh 打印机驱动


下一篇:js面向对象