如何学Python 第十七课 类-面向对象的概念 ---转载----玄魂工作室
概述
什么叫‘类’?类,类型。变量类型。从日常生活的感觉来说,‘类’其实是具有共同特征的一‘类’东西。比如在坐的各位都是人类,动物世界除了人类还有猫类狗类等等,只不过我们平时不那么叫。‘人类’内含了很多共同特征,比如都有皮肤,都有脑袋等等这些‘部件’;一个正常的人类也会有一些除了部件外的‘动作’,比如跑步、打球、看电影等等。在编程的概念里,‘部件’就是类的成员变量,‘动作’就是类的成员方法。‘类’就像是一个模子,我们可以根据这个模子来创建具体的具有这个‘类’的一切特征的‘对象’。这可能跟常识不太相符,因为现实生活中是现有的‘人’,后有的人类概念。在编程里,我们先设计‘类’,再根据类创建具体的对象。
也就是说,对于这种理想中的‘变量与动作集合’,我们不再需要分门别类的单独定义好多实际上有内在联系的变量和操作。这使得编程更加的容易;写程序的人可以更专注于程序本身是如何解决问题的,而不是哪个地方的变量或者具体操作出了问题。这一小结是我个人的理解,欢迎讨论。
具体操作
-
定义类
当我们使用类的时候,首先需要创建一个类。使用关键字class可以做到这点;你还需要给这个类起个名字和继承关系。我们稍后会介绍继承。
-
初始化
有了类之后,要定义一个初始化器。它会在我们创建类的实例的时候被运行。(嗯,创建类的实例的意思就是用类创建了一个对象。。。)
比如我们用‘人’这个类创建了一个实例,那么在大天朝,你就需要有身份证号、名字、
性别等等基本信息,要不然就是黑户。。。而初始化,就是设置这些基本的值。
为了达成这个目的,我们需要创建一个叫做__init__的函数(那是两个下划线).如果这个函数存在,那么它必须是类中的第一个函数。
-
在初始化中对自身属性赋值
__init__函数和别的函数差不多。但是,想要完成初始化,还需要复杂一点的技巧:self。self只在类的方法中存在,self指向的是类实例对象本身(不是类本身)。
我们通过这种方式设计了吃喝睡。吃的话,会先判断一下是不是真的饿了,如果真饿了,就吃;不然的话就就去玩儿。至于睡,睡一下就会涨一岁。(好吧这个设定有点怪)
-
创建实例
我们有了这么一类人。他们来自中国,他们很饿,他们只有十二岁。但是如果想要利用这个‘模子’制造出具体可操作的对象,还需要进行实例化。像下面这样:
我们可以看看它里面的变量是不是像想象中的一样,被__init__函数赋值好了:
好了:再调用一下函数:
至此,类的基础内容已经结束了。
小结
今天讲了很多内容,希望大家都能理解。关于‘类’,要学习的还有很多。类的概念让我们解决问题的方式上升到了新的高度。我知道这节课的内容可能不是太好懂,所以如果有疑问的话,尽管留言。