python基础 day22 面向对象

  • 面向对象介绍:
    面向过程开发:想要一个结果->写代码->实现计算结果
    面向对象开发:一种新的开发思路

  • 面向对象基础语法
    先来定义模子,用来描述一类事物
    具有相同的属性和动作
    例如:下面是定义的猫类

    class Cat:  # 类名
        def __init__(self, name, kind, hp, ad):  # 所有的在一个具体的人物出现之后拥有的属性,都写在__init__里面。
            print('hahha')
            self.name = name
            self.kind = kind
            self.hp = hp
            self.ad = ad
            print('*' * 20)
    
    
    tom = Cat('tom', '蓝猫', 100, 1)  # 类名() 会自动调用类中的__init__方法
    tim = Cat('tim', '英短', 200, 5)  # tim就是对象,tim = Cat()的过程,是通过类获取一个对象的过程 --实例化
    print(tom.__dict__)
    print(tim.__dict__)
    print(tom.kind)  # 属性的查看
    tom.hp = 300  # 属性的修改
    tom.money = 9999999  # 属性的添加
    print(tom.__dict__)
    del tom.money  #属性的删除
    print(tom.__dict__)
    
  • 类和对象的关系?
    类 是一个大范围,是一个模子,它约束了事物有哪些属性,但是不能约束具体的值
    对象 是一个具体的内容,它是模子的产物,它遵循了类的约束,同时给属性赋上具体的值

    Cat是一个类,tom,tim就是这个类的对象
    类有一个空间,存储的是定义在class中所有的名字
    每一个对象又拥有自己的空间,通过 对象名.__dict__就可以查看这个对象的属性和值。

  • 实例化经历的步骤

    1. 类名()之后的第一件事:开辟一块内存空间
    2. 调用__init__把空间的内存地址作为self参数传递到函数内部
    3. 所有的这一个对象需要使用的属性都需要和self关联起来
    4. 执行完__init__之后,self变量会自动的被返回到调用处(发生实例化的地方)
原文地址:https://www.cnblogs.com/west-yang/p/12822967.html