陪孩子一起学Python---面向对象
504阿贝
编辑于 2020年04月26日 19:43
收录于文集
共22篇

       在前面,我们已经了解了可以使用不同方式组织数据和程序,以及把东西收在一起。我们可以看到列表可以收集变量(数据),函数可以把一些代码收集到能够反复使用的单元中。对象则是让这种思想更向前迈进一步。对象可以把函数和数据收集在一起。这个主意在编程中非常有用,而且在很多很多的程序中都已经用到。实际上,Python本身也是面向对象的编程语言。

        什么是对象?如果不讲编程,你可能会想到,男、女朋友哈,确实是。如果说要谈恋爱,是不是要有一个对象,有性别(可以说是属性),可以帮助你在人生的学习道路上相互扶持。那么在Python中怎么定义什么是对象呢?比如说我们家里的小宠物,我们可以看到小狗可以有黑色、白色(属性);并且它还会汪汪地叫(动作)。Python中,一个对象的特征我们可以称为属性;动作呢我们可以叫做方法。 接下来我们来创建一个Python中的宠物狗的模型,宠物狗就是一个对象,它要有属性和方法。

       现在我们可以定义,对象 = 属性+方法。所以利用对象,可以把一个东西的属性和方法收集在一起。属性是信息,方法是操作。

       Python中创建对象包括两步。第一步是定义对象看上去什么样,会做什么,也就是它的属性和方法。但是创建这个描述并不会真正创建一个对象。所以这里我们称对象的描述为类。第二步就是使用类来创建一个真正的对象。这个对象成为这个类的一个实例。

      我们可以看到我们创建的类PetDog他的颜色(属性)必须是在代码中修改的,那么有没有办法,我们在创建对象的时候来设置对象的属性呢?当然是有的,这个就是初始化对象。创建类定义时,我们可以定义一个方法,名字为_init_( ),只有创建这个类的一个新实例,就会运用这个方法。可以向_int_( )方法传递参数,这样就可以把属性设置为你想要的。

我们可以看到这个程序和上面的区别就是我们使用__inint__( )初始化来设置属性,初始化小狗的颜色为黄色。

       可能你也注意到了我们在代码中反复使用到了selfself参数就是来告诉方法哪个对象调用了他。我们称这位实例引用。你可以理解它是在为我们传递信息。

这里我们来了解另一个特殊方法,__str__( ) ,它会告诉Python打印(print)一个对象时集体显示什么内容。我们可以使用这个方法来打印出我们想要的内容。

       在面向对象编程中,类其实是可以从其他的类继承属性和方法的。就像我们会从父辈继承某些特征一样。其实类也是有家族的,家族中的类共享相同的属性和方法。

我们可以看到,新创建的singdog继承了父辈的属性。