类和对象(二)
在上一篇中,我们看到了如何定义一个类,以及实例化这个类(产生类对象)。好了,本次我们要搞清楚类和对象的区别。我们举例说明一下吧。
我们大家都知道牛,马,羊,甚至是人都是动物,既然它们被归为一类,并且起了个叫“动物”的名字,那么多多少少说明他们之间是有某些共性的(至少有相似的地方)。正是因为这些共性(比如都是真核生物,都是异养型。应该是对的,高中学过去的,有些记不清。),他们才被归为“动物”这个类别。我们拿羊来说吧,当我说到羊的时候,你的脑海里估计会浮现出羊的身影(你至少看见过羊的图片吧!如果你完全不知道羊是什么,那我建议你去买一只羊,然后看看羊长什么样子。),这个身影就是你对羊这个物种的一个认识,而事实上,羊也有很多品种。例如:山羊,绵羊,岩羊等等。但是从这些不同品种的羊身上我们可以看到他们之间的共性,比如:有毛,四足,喜食草,性温和。
从上面的例子,我们可以这样理解类和对象。类就是从所有的对象身上抽象出来的共性,它包含了对象的一些基本属性。对象就是类的具体化,它是类在真实世界的显现。(怎么感觉有些玄啊!)就像是动物,我一说“动物”这个词,你可能就会马上想到一些具体的动物(例如:狮子,老虎之类的动物身影就会浮现)。但是关于动物本身你却不明确,即使到了具体的羊这个物种,我想我们大家脑海之中所浮现的羊也不见得是同一个品种的。只有当我具体说到绵羊,这个时候你才能在真实世界找到唯一对应的事物(绵羊)。这就是类和对象之间的区别。
上面的例子之中的动物,可以作为所谓的“父类”来看待,绵羊则作为“动物”类的一个子类,某个指定的绵羊则是“绵羊”这个类的对象。好了,你可能需要好好读一下上面这段话。下面,我们接着介绍一些新东西。
class MyClass:
def __init__(self,name):
self.name = name
def Show(self):
print("You are %s"%self.name)
a = MyClass("zy")
a.Show();
这段代码之中,你看到了新的东西__init__(self,name)这个函数。这个函数的功能通常是让你对你的对象做一些初始化。在这段代码中,初始化了你的名字。你一定得记住函数有一个参数是self。我们来看输出结果:你可以看到,它输出了You are zy。
但在我们的代码之中并没有调用__init__()这个函数,但是和上次不同的是我们这次在创建对象的时候在后面的圆括号之中传入了参数"zy"。__init__()这个函数会在我们创建类对象的时候自动被调用,不需要你去显式的调用它。
__init__(),这个函数的名字必须叫做init。开头和结尾是双下划线,这点一定要注意。(学过C++/Java的同学,把init方法理解为构造函数即可。)好了,就写这么多吧,等你学完了面向对象的所有内容之后,在来看看上面那段话。下次见。