zoukankan      html  css  js  c++  java
  • 面向对象初识

    今日内容

    面向对象初识

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

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

    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

     

  • 相关阅读:
    ZOJ3414Trail Walk(计算几何)
    ZOJ-3410Layton's Escape(优先队列+贪心)
    爬虫之requests
    爬虫
    flsk-SQLALchemy
    flask--Wtform
    flask---信号
    flask-session
    单例模式
    Python-flask中数据库连接池DBUtils
  • 原文地址:https://www.cnblogs.com/zhangxiangning/p/10233885.html
Copyright © 2011-2022 走看看