重新理解一下对象class这个东西

来源:互联网 发布:tcp监听端口检测失败 编辑:程序博客网 时间:2024/06/02 05:06

time:2017-06-18

重新的理解一下对象这个东西

class People():    def __init__(self,name,year):        self.name = name        self.year = year    def update(self):        self.year += 1    def change_name(self):        self.name = name

这是一个对象,我们对他进行实例化:

LiErhua = People('LiErhua',1992)

对一个对象的实例的理解:

一个对象可以实例化出好多的实例,一旦一个实例被实例化出来之后,他马上就会具有init里所有的性质。但是,这些性质并不是不变的,就像人一样,所有的性质都是可以被改变的。

我们可以通过各种各样的方法对实例的属性进行改变,比如那个change_name()的方法,一旦实例调用这个方法,实例的名字就马上发生变化,并且存储到实例里。

就像一直到人死亡,所有的性质才会统统消失一样(除非我们中途把某个性质归零);所有的实例,直到我们把它抛弃,它的性质才没有了任何意义,不然,所有的性质都会随着方法的使用不断的更新并存储,一旦我们调用他们的属性,它们展现出的必定是时时存储的属性,并不是一开始实例化时赋予的属性。


正如我联系的那个ship、alien和bullet的小游戏一样。

每一个bullet首先被实例化出来之后都会就有性质,然后我们通过一个update()方法,来改变我们想改变的bullet的位置属性的信息,一旦改变之后,我们就可以通过利用变化后的信息,让现在的更新属性后的实例调用方法来输出它,来展示在屏幕上它新的位置。


这就给提供了一个新的思路:

在设置class的方法的时候,有的方法是用来改变init属性的,有的方法是利用init的属性来达到一定目的的(但是不会改变init属性),我们实例化对象的目的,就是为了利用这些改变属性的方法不改变属性但是做事情的方法的配合来让这个实例展示自己。


原创粉丝点击