美文网首页
python-面向对象

python-面向对象

作者: 熊大呀 | 来源:发表于2019-08-23 17:18 被阅读0次

1、概念

(1)面向过程编程是一种以事件为中心的编程思想,分析解决问题的步骤,然后使用函数或语句块把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了(使用面向过程思想编写的代码,相对条理更清晰,更易读)但是随着程序的增加,系统的膨胀,过程变得越来越复杂,变的不容易维护,一旦过程需要调整,修改十分麻烦,甚至很多代码都要重写。“面向对象编程”是一种将数据和功能结合起来,用称为对象的东西包裹组织程序的一种方法

(2)面向对象编程是一种以对象为中心的编程思想,把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是分析在解决问题的步骤中对象的行为。面向对象强调的是将问题对象化,因为问题的解决都是由对象参与,而且这种编程思想更贴近现实。使用面向对象思想编写的代码,将数据和功能都封装在对象中,即使后续需要调整,只需要修改特定的对象,代码更易维护

(3)面向对象编程最主要的两个概念是:

*类(class):是一种抽象的类型                       

  *对象(object):是这种类型的实例

一个类可以有属于它的函数,被称为类的“方法”。一个类/对象可以有属于它的变量,被称为类/对象的“域”。域根据所属不同,又分别被称为“类变量”和“实例变量”(方法合称为类的属性)

(4)在Python中使用class语句创建类,class语句后跟类名,缩进语句块表示类体。在定义类时,将首字符大写,用于区分类名和函数名、变量名

2、方法

类方法必须有一个额外的第一个参数名称,但是在调用这个方法的时候,不需要为这个参数赋值,Python会提供这个值,这个特别的参数指向对象本身,按照惯例它的名字是self

 假设有一个类MyClass和一个类的对象MyObject,当调用对象的方法MyObject.method(arg1,arg2)时,会由Python自动转为MyClass.method(MyObject,arg1,arg2)。即使在类中定义一个不需要参数的方法,这个方法也必须有self这个参数。同时类的方法定义完成后,必须通过创建对象才能调用它

__init__方法在类的一个对象被建立时,马上运行,而不是像其他类方法一样,需要被对象调用,因此这个方法可以用来对类的对象做一些初始化(注意:这个方法的名称开始和结尾都是双下划线

在上面的例子中,__init__方法运行时,需要一个参数s,并将这个参数赋值给对象的一个变量;因为__init__方法在创建类的对象时就会运行,所以方法所需的参数也是在创建对象的时候传递

3、变量

类的数据部分实际上就是类和对象的名称空间绑定的普通变量,即这些变量只在类和对象的前提下有效,这些变量在类中被称为“域”

有两种类型的域:类的变量对象的变量,根据是类还是对象拥有这个变量来区分

类的变量由一个类的所有对象共享使用,所以当某个对象对类的变量做了改动,这个改动会反映到所有其他的对象上。对象的变量由类的每个对象拥有,即对象的变量不是共享的

在Python中没有类似其他编程语言的public、private等关键词来修饰成员变量、成员函数,在Python中定义的类变量默认都是公共的

如果想要定义私有变量,即只能在类内部使用,不能再类外使用的变量,只需要在变量名前加双下划线

4、继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制,继承可以理解为类型和子类型之间的关系;被继承的类称为基本类超类,继承后的类被称为导出类子类;子类能够继承超类的属性,即方法和域,通过这种继承机制,相同的属性就不需要重复编写,因此很好的实现了代码重用

在Python中继承是通过在定义子类时,将超类的名称作为一个元组跟在子类名称后来表示

子类在继承过程中,可以新增独有的属性

子类在继承过程中,还可以重写超类的方法;子类也可以同时继承于多个超类

通过子类继承超类,能够提高代码的重用性;同时还具备另外一个优点:如果超类发生变更,它能自动的反映到子类中

相关文章

  • Python-面向对象

    类,对象,列表 用Python写一个用类创建房子和床,把床存到房子里,报出一共放置了多少张床。1.在下面代码中“b...

  • python-面向对象

    面向对象 面向过程:根据业务逻辑从上到 下写代码面向对象(OO):将数据与函数绑定到一起,进行封装,这样能够更快速...

  • python-面向对象

    先调用new方法来创建对象,然后找了一个变量来接受new的返回值,这个返回值表示穿件出来的对象的应用。 再调用in...

  • python-面向对象

    面向对象 一种认识世界,分析世界的方法论。将万事万物抽象为类 类class 类是抽象的概念,是万事万物的抽象,是一...

  • python-面向对象

    1、概念 (1)面向过程编程是一种以事件为中心的编程思想,分析解决问题的步骤,然后使用函数或语句块把这些步骤一步一...

  • Python-面向对象

    面向对象技术简介 类(Class):用来描述具有相同的属性和方法的对象集合。他定义了该集合中每个对象所共有的属性和...

  • 笔记更新进度提示

    各位, 为了更快更好的录制,Python-核心阶段课程(面向对象, Pygame, 异常处理等等); 会把更多的时...

  • python-高级、面向对象

    一、类与对象 二、类和对象

  • Python-面向对象--继承

    一.单继承 单继承:比如下图有一个“parent”父类和“son1”,“son2”子类 注:下图第一行中括号内的“...

  • Python-面向对象(二)

    四、继承方法 1、单继承 子类在继承的时候,在定义类时,小括号()中为父类的名字父类的属性、方法,会被继承给子类 ...

网友评论

      本文标题:python-面向对象

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