面向对象初识

今日内容

面向对象初识

  • 面向过程开发:之前学的开发过程,求一个结果,写代码为了实现这个结果。

  • 面向对象开发:开发一个拥有开放性结局的程序时,不注定结果,这种情况适合这种开发方法。例如游戏,购物,结果不固定。

  1. 类:python中一切皆为对象,类型的本质就是类

  2. 类有两种作用:

    • 属性引用

    • 实例化

    有如下例子

     # class Person:       # 类名
     #     def __init__(self,name,sex,job,hp,weapon,ad):
     #         # 必须叫__init__这个名字,不能改变的,所有的在一个具体的人物出现之后拥有的属性
     #         self.name = name
     #         self.sex = sex
     #         self.job = job
     #         self.level = 0
     #         self.hp = hp
     #         self.weapon = weapon
     #         self.ad = ad
     
     # alex = Person('alex','不详','搓澡工',260,'搓澡巾',1)
     # print(alex,alex.__dict__)   # 属性的查看
     # alex.name = 'alexsb'   # 属性的修改
     # alex.money = 1000000     # 属性的增加
     # del alex.money           # 属性的删除

    alex就是一个对象,alex = Person()这个过程是通过类获取一个对象的过程,即实例化

    print(alex,alex.__dict__)这是对人的属性的查看,可以对属性增删改查

    类名() 会自动调用类中的__init__方法

  3. 类与对象的关系

    • 类:是具有相同属性和相似功能的一类事物。是一个大范围,是一个模子,它约束了事物有哪些属性,但是不能约束具体的值

    • 对象/实例:是一个具体的内容,是模子的产物,它遵循了类的约束,同时给属性赋上具体的值

    • 空间问题***:类有一个空间,存储的是定义在class中的所有名字;每一个对象又拥有自己的空间,通过对象名.__dict__就可以查看这个对象的属性和值修改列表字典中的某个值,或者是对象的某一个属性 都不会影响这个对象字典列表所在的内存空间

  4. 对象的属性/实例变量

    self.xxx这就是实例变量

  5. 实例化后的步骤

    1. 类名() 之后的第一个事儿 :开辟一块儿内存空间

    2. 调用__init__把空间的内存地址作为self参数传递到函数内部

    3. 所有的这一个对象需要使用的属性都需要和self关联起来--对象的初始化

    4. 执行完init中的逻辑之后,self变量会自动的被返回到调用处(发生实例化的地方)

方法初识

 class Person:       # 类名
     def __init__(self,name,sex,job,hp,weapon,ad):
         # 必须叫__init__这个名字,不能改变的,所有的在一个具体的人物出现之后拥有的属性
         self.name = name          # 对象的属性/实例变量
         self.sex = sex
         self.hp = hp
         self.ad = ad
     def 搓(self,dog):    # 方法,又有一个必须传的参数-->self对象
         dog.hp -= self.ad
         print('%s给%s搓了澡,%s掉了%s点血,%s当前血量%s'%(self.name,dog.dog_name,dog.dog_name,self.ad,dog.dog_name,dog.hp))
         
 alex.搓(小白)

__init__方法后出现的函数定义即为一个方法,注意使用方法时,外面调用传入的函数总会比定义时少一个,因为默认传入self

 

原文地址:https://www.cnblogs.com/zhangxiangning/p/10233885.html