• 技术文章 >后端开发 >Python教程

    Python面向对象编程中类和实例的简单讲解(附示例)

    不言不言2018-10-09 15:33:42转载1291
    本篇文章给大家带来的内容是关于Python面向编程中类和实例的简单讲解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    一、preface

    面向对象编程OOP:object oriented programming。
    OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。Python是一门面向对象的编程语言,通过对象实现对方法的调用。

    面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。
    而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

    对于面向对象语言,重要的概念是类和实例。类是一个抽象的模板,实例是根据类模板创建出的一个对象。
    在python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义对象数据类型就是面向对象中类的概念,根据类来创建对象。
    它的三大特点就是:封装、继承、多态。

    二、类class

    类是一个抽象的模板,是一种数据结构。

    语法:
    class class_name: pass
    class class_name(object): pass

    说明:
    class是关键字,类。类名class_name通常以大写字母开头。
    object表示该类是从哪个类继承而来。事实上object是所有类都会继承的基类,一般不会显示写出。(我一般会习惯写上)

    比如学生,一个班级会有很多个学生,那对于学生这个集合,会有很多共同的地方,比如说学生的姓名、学号、年级、专业、成绩等一系列共同的特性,那么我们就可以把这些都抽象成一个学生Student类。如下:

    class Student(object):
        pass

    上面例子,我们先用pass进行演示,表示什么都不操作。

    三、实例instance

    通过类可以创建Student实例,方法如下:

    >>> bart = Student()        # 变量bart指向的是一个Student的实例 
    >>> bart
    <__main__.Student object at 0x0086F710> # 类object 实例的内存地址
    >>> Student                 # 类
    <class '__main__.Student'>     # 返回的是Student 类的属性 class

    对类的实例,可以进行属性的绑定。

    属性就是一个对象的数据或者函数元素。比如Student类中学生的姓名、学号等信息。

    通过“据点属性标识法”来访问。

    python是动态语言,根据类创建的实例可以任意绑定属性。给实例绑定属性的方法是通过实例变量,或者通过self变量。

    >>> bart.name = 'xlp'        # 动态给变量绑定属性
    >>> bart.name
    'xlp'

    那属性是如何实现绑定的呢?__init__()实例方法。
    当一个实例被创建后,Python会检查是否实现了__init__()方法,如果没有定义该方法,对实例不会施加任何特定的操作,任何需要特殊的操作,需要自己去自定义该方法。即__init()__会被自动调用,不管是默认的还是自定义的。

    __init__(self)

    1、 该方法的第一个参数永远都是self,self指向创建的实例本身;

    2、 通过该方法,把属性绑定到self指向的实例上;

    3、 __init__()方法返回None;

    4、 该方法中,可以设置默认参数和位置参数。创建实例时,不能传入空的参数,必须传入与方法匹配的参数,但self不需要传入,默认参数根据需要进行传入与否。

    针对第三点:因为实例对象是在自动化创建实例调用后返回的,如果定义了构造器__init__(),它不应该返回任何对象,否则就有可能发生冲突,只能返回实例。试图返回任何非None的其他对象会报TypeError的错误:

    3972713979-5badf2f316707_articlex.png

    查看实例属性:dir()
    通过内建函数dir(class_name)可以查看类的属性,例如:dir(Student1)。也可以访问实例的属性。自己尝试打印出来看看~

    以上就是Python面向对象编程中类和实例的简单讲解(附示例)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault思否,如有侵犯,请联系admin@php.cn删除
    专题推荐:python
    上一篇:浅谈Python中字典和散列表以及散列冲突的解决 下一篇:python SMTP发送邮件的详细介绍(附代码)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• Python面向对象编程中的类和对象学习教程• 关于Python面向对象编程的知识点总结• Python面向对象编程中关于类和方法• Python面向对象编程的详细介绍• Python面向对象编程(二)
    1/1

    PHP中文网