类与对象
类:我们常用类来划分一个个特定的群体;我们所说的类,是物以类聚的类,是分门别类的类,是多个类似事物组成的群体的统称。类的概念能帮助我们快速理解和判断事物的性质。
类(class),比如整数、字符串、浮点数等,不同的数据类型就属于不同的类。我们可以用type()函数来验证类。编程世界中,每个类也会有众多实际的个例。比如数字1和2,都属于整数类;'第一个栗子'和'第二个栗子',都属于字符串类。
在Python的术语里,我们把类的个例就叫做实例?(instance),可理解为“实际的例子”。类是某个特定的群体,实例是群体中某个具体的个体。
对象:Python中的对象等于类和实例的集合:即类可以看作是对象,实例也可以看作是对象,比如列表list是个类对象,[1,2]是个实例对象,它们都是对象。
类和实例之共同点:
第一种是描述事物是怎样的,有什么特征,比如黑眼睛、黄皮肤。
第二种是描述事物能做什么,有哪些行为和作用,比如能用筷子吃饭、会讲汉语。
我们会把第一种共同点叫作属性(即what),第二种叫作方法(即how)。
比如列表的属性有:外层有中括号,元素之间用英文逗号隔开,方法有:都可以做增删改操作(如 append、del等)。
Python里的每个类都有自己独特的属性(attribute)和方法(method),是这个类的所有实例都共享的。换言之,每个实例都可以调用类中所有的属性和方法。
编程中还是有一点和现实不同。那就是——现实世界中各个类的属性和方法是我们根据客观存在做出的抽象总结。
而编程世界中各个类的属性和方法,是需要我们自行创建的(实际上整数、列表这些内置数据类型也是需要的,只不过Python预先创建好了,我们可以直接使用)。
类的创建和调用:
类的创建:如图
类的创建
实例方法的创建语句,和函数的定义语句很类似,唯一不同的是:实例方法中有个必须放在首位的参数self。
还有,类名的首字母要大写,以便让我们轻松地辨认出这个是类!
类的调用:实例的属性,如图:
类的调用
类的实例化:
类的实例化
实例属性打印结果:如图
调用打印结果
第一行:验证了my_computer属于Computer这个类;第二行打印出Computer类的一个实例对象(object),后面的一串字符表示这个对象的内存地址。
当实例my_computer一被创建出来,就可以调用类中的属性和方法。概括说就是:类有的实例都会有。
调用的语法:是实例名.属性和实例名.方法,举例如图:
类的调用语法
倒数第二行:my_computer.screen先是获取到类属性screen对应的值True,再用print()打印出来。
最后一行:my_computer.start()调用方法start(),这个方法的功能是直接打印出'电脑正在开机中……'。
注意: 类的第一个字母要大写,参数self的特殊之处:在定义时不能丢,在调用时要忽略。
类的创建和调用语法总结:如图:
类的创建和调用语法总结
类中创建的属性和方法可以被其所有的实例调用,而且,实例的数目在理论上是无限的。我们可以同时“新建”多个实例:类也被称为“实例工厂”,因其为所有实例提供了一套蓝图(即预先设定好有什么属性和方法)。