1.7 Python 对象详解
真实的世界是由千千万万的对象组成的。在Python 的编程世界里,所有的一切也可以看作对象,比如数字、字符,以及后面将会学到的列表、元组、集合、字典、函数等。用户可以使用这些对象,也可以在Python 中创建自己的对象。
1.7.1 类的定义
类也是一种对象,只不过它是用来创建对象的一种对象。类用来描述具有相同属性和方法的对象集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例。也就是说,对象是由类创建的。比如,后面的章节中会讲解通过list 类来创建或转换一个列表对象。
1.7.2 对象的身份
在现实生活中,人就是一个类,而每一个具体的人就是对象,具体的人可以靠身份证号来进行识别,也可以定位所在位置。Python 中的对象也是有身份的,可以通过id 函数来识别对象在内存中的地址。比如,字符串'曾贤志'就是对象,输入代码print(id(' 曾贤志'))(代码在 “Chapter-1-7.py” 文件中),屏幕上的输出结果为2673213256496,这串数字就可以看作该字符串在内存中的地址,并且具有唯一性。但是,这串数字是变化的,因此在测试代码时,每次输出的结果可能不一样,读者不要为此感到困惑。
1# print(id('曾贤志')) #返回数字2673213256496
1.7.3 对象的类型
虽然万物皆对象,但对象也有类型之分。比如,猪、狗、牛、马、花、草、树、木等都是对象,但它们却是不同的类型,猪、狗、牛、马是动物类型,花、草、树、木是植物类型。
在Python 中,99、888、'abc'都是对象,9 和888 是数字类型,而'abc'是字符串类型。不同类型的对象有着不同的属性和方法,遵循不同的规则。
要查看对象的类型,可以使用type 函数。比如,输入代码print(type(99)),代码在 “Chapter-1-8.py” 文件中,返回结果为<class 'int'>,表示99 是int 类型,也就是整数类型。再比如,输入代码print(type('abc')),返回结果为<class 'str'>,表示'abc'是str类型,也就是字符串类型。其他对象的类型就不一一列举了,后文中会涉及。
1.7.4 对象的值
对象除有身份、类型外,还有值。人的名字就可以看作值。在Python 中,有的对象的值是可以改变的,有的对象的值不可以改变。比如,数字、字符、元组都是不可以改变值的对象。
1.7.5 对象的属性
对象的特征也称为属性。比如,字符串'abcd',它的字符长度为4,这个长度就是该字符串的属性。
1.7.6 对象的方法
对象所具有的行为也可以称作方法。比如,对字符串'a-b-c-d'进行拆分,这个拆分就可以说是方法。在Python 中,方法的本质是函数,在类中定义的函数叫作方法,没在类中定义的函数就叫作函数。在后面的章节中将讲解一些内建的函数或方法,为方便读者阅读,统一都叫作函数。
1.7.7 对象与变量
在编程过程中,很多时候需要给对象设置变量,相当于给对象贴一个标签,这样更方便识别。
比如a=1,表示给对象1 贴一个标签,在引用变量a 进行代码编写时,就相当于在使用对象1。
在命名变量时,需要注意如下规则:
● 变量名可以由字母、数字、下画线(_)组成,但不能以数字开头;
● 变量名不能是Python 关键字,但可以包含关键字;
● 变量名不能包含空格;
● 变量名尽量取得有意义,容易让人识别。