美文网首页Python全栈
23.Python之面向对象(类与对象)

23.Python之面向对象(类与对象)

作者: 免跪姓黄 | 来源:发表于2020-03-02 21:49 被阅读0次

Python之类与对象

    • 类:用来描述具有相同的属性和方法的对象的集合(在Python中类与类型是一个概念)。

    • 特点:

      • 在程序中,必须先定义类(类名称通常首字母大写),再调用类,然后产生对象;

      • 类(类体)中最常见的就是变量(类的数据属性或者叫做静态变量)与函数(函数属性或者叫做方法)的定义,但类中可以有任意Python代码,并且类体中的代码在类的定义阶段就会立即执行。在类中,如果一个变量的值需要被所有对象共享,那么这个变量应该被定义成静态变量,所有和静态变量相关的增、删、改、查都应该使用类名调用静态变量的方式来处理,而不应该使用对象名调用静态变量的方式进行处理。

      • 类的属性可以进行增、删、改、查等操作

      • 调用类产生对象的过程称为类的实例化,实例化的结果是一个对象,或者称为一个实例。

        # For example:
        class Chinese():    # 类命名规则是首字母大写的驼峰体
            '''
            类的注释信息
            '''
            country = 'China' # 类内通常定义相同的特征,country被称为Chinese类中的数据属性
            def __init__(self,name,age,sex):    # 在对象实例化的时候,__init__() 会自动触发执行
                self.Name = name    # Chinese.Name = name
                self.Age = age    # Chinese.Age = age
                self.Sex = sex    # Chinese.Sex = sex
                
            def run(self): # 类内通常定义相同的技能;类内的函数()中默认自带self参数;run(self)称之为Chinese类中的绑定方法
                print(F'{self.Name} is running')
                
        obj = Chinese('HC', 18, 'males')   # 类的实例化,Chinese.__init__(obj,'HC',18,'males')
        
        
    • 类的实例化做了三件事:

      • 先产生一个空对象;
      • 自动触发类内部 __init__() 函数的执行。__init__方法:
        • 该方法内可以有任意的python代码;
        • 一定不能有返回值。
      • 将空对象及调用类括号内的参数,一同传给 __init__(),为对象定制独有的属性。在产生对象时,需要在类内定义一个__init__的函数,该函数会在调用类的时候自动触发执行,为类中不同于那些相同特征与技能的对象进行初始化。
    • 类内部定义的变量是给所有对象共享的,所有对象使用类中的属性都指向的都是同一个内存地址。

    • 类内部定义的函数,类可以使用,但类用的时候就是普通函数,普通函数有几个参数就要传几个参数;而类内部定义的函数,其实是给对象使用的,当对象调用类内部的函数时,类内部的函数会绑定给对象,称之为绑定方法,绑定方法的特殊之处在于:谁来调用,就会将谁当作第一个参数self自动传入。


  1. 对象

    • 类的实例化结果就是一个对象,对象中的变量只属于对象本身,每个对象都有属于自己的名称空间来存储对象的变量,当使用对象名去调用类中的属性时,会优先在自己的名称空间中寻找,再去类中寻找,如果类中没有引用其他类,找不到就会报错,即对象属性的查找顺序为:先找对象自己的名称空间(__dict__) -> 类的名称空间(__dict__)。

    • 对象的操作:

      # 类属性的增、删、改、查
      # 查
      print(Chinese.country)
      # 增
      Chinese.gender = 'males'
      print(Chinese.gender)
      # 改
      Chinese.gender = 'females'
      print(Chinese.gender)
      # 删
      del Chinese.gender
      

  1. 类与函数的区别

    • 函数内的代码,在函数定义阶段并不会运行,只有在调用阶段才会运行;类体内的代码,在类定义阶段就会立刻执行,并且产生类的名称空间。

  1. Python中一切皆对象

    • 在Python3中统一了类与类型的概念,类即类型。

  1. 了解内容:新式类与经典类

    • 新式类

      • 继承object的类,以及该类的子类,都是新式类。
      • 在Python 3中如果一个类没有指定继承的父类,默认就继承object,因此Python 3中所有的类都是新式类。
    • 经典类

      • 没有继承object的类,以及该类的子类,都是经典类。
      • 只有在Python2中才区分新式类与经典类,Python3中都是新式类。
    • 新式类和经典类只有在菱形继承下才有区别:

      • 经典类:深度优先查找。
      • 新式类:广度优先查找。

相关文章

  • 23.Python之面向对象(类与对象)

    Python之类与对象 类类:用来描述具有相同的属性和方法的对象的集合(在Python中类与类型是一个概念)。特点...

  • 006-面向对象1

    面向过程与面向对象 开车问题 吃饭问题 做饭问题 类与对象 类的概念 对象的概念 练习: 区分类与对象 类的组成 ...

  • 3. Java面向对象编程

    类与对象[1] Java是面向对象的汇编语言(面向机器)—— c语言(面向过程)—— java语言(面向对象) 类...

  • 《Java核心技术卷 I》之 Java对象与类

    Java对象与类 面向对象程序设计 面向对象程序设计,简称OOP,Java语言就是完全面向对象的。 类 类(cla...

  • 面向对象_初识

    目录 面向对象编程介绍 类与对象介绍 私有属性与私有方法 面向对象编程 1. 面向对象编程介绍 面向对象编程:Ob...

  • JavaDay06

    类与对象 面向对象:强调对象;让对象去完成任务面向过程:强调的是每一步 类与对象 类:(我们习惯把事物进行归类)是...

  • Java复习笔记——系统整理

    一、面向对象概念 1. 类与对象 1.1 面向过程和面向对象 面向过程 (Procedural Programmi...

  • 面向对象01-方法(重载)/包/修饰符

    面向对象01-方法(重载)/包/修饰符 [TOC] 1、面向对象与面向过程 2、类和对象 2.1、类和对象的的创建...

  • 第二章 类与对象

    用例子讲述了“面向过程”与“面向对象”之间的区别 面向对象包括类、方法和属性 类是对象的蓝图,一个类可以有很多对象...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

网友评论

    本文标题:23.Python之面向对象(类与对象)

    本文链接:https://www.haomeiwen.com/subject/dsgikhtx.html