zoukankan      html  css  js  c++  java
  • Python面向对象-概念、类、实例

    OOP——Object Oriented Programming,面向对象编程,是一种程序设计思想。该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

    区别于面向过程的程序设计即把计算机程序视为一系列的命令集合(即一组函数的顺序集合),面向对象的程序设计是把计算机程序视为一组对象的集合,每个对象都可以接受其他对象发过来的消息,并可以处理这些消息,计算机程序的执行就是一系列消息在各个对象之间的传递。

    ”万物皆对象“!

    面向对象的设计思想是人们观察自然中现象的一种认知模式。想想,自然界中,类class和实例Instance的概念是不是很自然而然的呢?比如,定义类Class——动物,而实例Instance则是一个个具体的动物,比如说狗、猫就是两个具体的动物。

    面向对象的设计思想就是抽象出class,然后根据class创建Instance。因为一个class既包含数据,又包含操作数据的方法,所以可以说面向对象的抽象程度比面向函数要高。

    Python中所有的数据类型都可以视为对象,也可以自定义对象。自定义对象就是面向对象中的类(Class)的概念。

    举例:

    通过class关键字来定义一个Student的类:

     class Student(object):
         pass

    定义好了Student类(模板)后,就可以根据Student类创建出Student的实例。创建实例是通过类名+()实现的:

    >>> WC = Student()
    >>> Student
    <class '__main__.Student'>
    >>> WC
    <__main__.Student object at 0x03783270>

    从上述结果可以看出,WC指向的是Student的实例,内存地址为0x03783270。而Student本身则是一个类,并没有分配内存地址。

    既然类实际是一个模板的作用,那么我们在设计模板的时候,把一些我们认为的一些通用的属性或者行为强制性的赋予给模板,以后新建实例的实例,就会直接持有这些通用的属性或者行为了。一般的,通过__init__方法,实现上述过程。

    比如,我们认为Student一般都会有name、score属性:

    class Student(object):
        def __init__(self,name,score
                self.name = name
                self.score = score

    注意,__init__方法的第一个参数永远都是self,表示创建的实例本身。在__init__方法内部,就可以把属性绑定到self上。有了__init__函数后,创建实例的时候,就必须传入于__init__方法匹配的参数,其中self不需要传:

    >>> WC = Student('Wuchong',99)
    >>> WC.name
    'Wuchong'
    >>> WC.score
    99

    WC就是类Student的一个实例。

    和一般函数相比,类中定义的函数有点不同:就是第一个参数永远是self,并且在调用的时候,不需要传递该参数。

  • 相关阅读:
    Python变量常量命名
    代码格式
    Python 输入输出
    数据源
    LaTeX Test
    软件工程
    eclipse-智能提示设置
    java代码里设置指定颜色常值
    命令行中Vim直接打开某行
    Vim里快速替换命令
  • 原文地址:https://www.cnblogs.com/hiwuchong/p/8513728.html
Copyright © 2011-2022 走看看