zoukankan      html  css  js  c++  java
  • 10.22语法 class 类 面向对象概念 类与对象 对象的使用 绑定方法

    1.语法 class 类

    类命名规范 大写开头 驼峰体

    如 class Xxxx:

      a=‘a’

      b=‘b’

      def say_hi(self):

        print(self)

        print('hello')

    在定义阶段(只要包含该类的py文件被执行 就会做两件事)

    1.创建类的名称空间

    2.执行代码 将产生的名称放入名称空间

    使用类中的属性

    Xxxx.a

    Xxxx.b

    使用类中的函数

    Xxxx.say_hi   使用类直接调用类中的函数时与普通函数没有什么区别  self仅仅是一个参数

    2.面向对象概念

    也是一种编程思想

    核心是对象

     什么是对象:再现实生活中实实在在存在的,具备自己的特征和行为的事物
    反过来说 对象就是 特征和行为(技能)的结合体
    如何来区分:如果能够准确的找到一个事物,它就是一个对象

     面向对象编程:我们关注的点是.使用什么样的对象可以完成我的任务
    例如:把大象装进冰箱,什么样的对象可以帮我完成这个任务,只要找到这个对象,命令它来做事情即可
    你从一个操作者 变成了指挥者, 例如:西游记中的如来,他要完成一个传经,要把经书传到东土大唐取,
    本来要自己去,但是太麻烦,所以找了唐僧师徒五个对象,来帮他完成这个任务

    优势: 1.对于指挥者(程序员)来说,不需要再关心具体步骤
    2.扩展性,一个单独的个体的特征或行为发生变化时 不会影响到别人

    缺点: 1.程序的复杂度变高,你得需要设计这个些对象,注意要避免过度设计得问题
    2.程序得执行结果可控性低

    3.类与对象
    类就是分类 类型的意思
    定义:一堆具备相同特征和行为的事物的抽象概念,不实际存在
    先有类还是先有对象:
    生活中:
    生活中类怎么来的,是通过对象的特征和行为抽取而来,
    所以是先有对象才有了类

    编程中:
    必须是先有类 才能有对象,因为你必须先告诉程序,你这个对象有什么样的特征和行为

    类的作用:用于描述该类的对象具备什么样的特征和行为

    4.对象的使用    对象 与类的名称空间是独立的

    创建对象:在类名后加括号   

    访问对象的属性print(Xxxx.a)

    修改属性的值:Xxxx.a='b'    为对象的属性赋予新的值 类中的属性不会变化

    增加属性    

    Xxxx.c='c'   为对象增加属性   类中也不会出现新的属性

    删除属性

    def  Xxxx.c

    如果对象的属性是相同的 就放到类中 作为一个公共的数据

    对象的属性查找顺序
    对象自己的名称空间 -> 类的名称空间

    __init__   称之为初始化函数  在创建对象的时候自动执行

    创建对象时,创建一个空对象,执行函数时__init__并且自动传入了这个对象

    该函数的作用,就是为对象的属性赋初始值
    def __init__(self,name,color,age,gender):
      print("狗__init__执行了")
      print(self)
      self.name = name
      self.age = age
      self.color = color
      self.gender = gender

    #1. 使用场景 需要为每个对象定制不同的属性值
    #2.__init__在创建对象后自动执行
    #3.第一个self参数 指的是这个对象本身 不需要手动传值

    5.绑定方法


    # 类调用与对象调用的区别
    # 对于类而言 sleep就是一个普通函数
    # 对对象而言 sleep是一个绑定方法

    # 绑定方法是什么?
    # 是对象与类中的某个函数的绑定关系 就像生活中 我们都会吃饭 我吃饭你不会饱
    # 那么吃饭就是我自己的绑定方法

    # 为什么要把函数进行绑定?
    # 因为对象的行为 通常都需要访问这个对象的数据 或是修改这个对象的数据
    # 如果没有对象 直接调用函数是没有意义的 在函数中访问不到对象的数据
    # 所以将对象和函数进行绑定

    # 特殊之处
    # 在使用绑定方法时 不需要关心self参数 会自动将这个对象本身传进来
    # 对象调用绑定方法时 最后执行的还是类中的那个函数

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 选择排序
    Java实现 蓝桥杯VIP 算法提高 选择排序
    Java实现 蓝桥杯VIP 算法提高 选择排序
    QT中的SOCKET编程
    代理Delegate的小应用(使用setModelData设置下拉日期对话框)
    360企业云盘需求调研,包括定价
    大神为你分析 Go、Java、C 等主流编程语言(Go可以替代Java,而且最小化程序员的工作量,学习比较容易)
    VS 查看是否有内存泄露的方法
    SpringMVC之 数据绑定-1
    动画操作 (Applying Animations) ngAnimate12
  • 原文地址:https://www.cnblogs.com/zhanggq/p/9832363.html
Copyright © 2011-2022 走看看