天天看点

《Python语言程序设计》——3.5 对象和方法简介

本节书摘来自华章计算机《python语言程序设计》一书中的第3章,第3.5节,作者:[美]梁勇(y. daniel liang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

关键点:在python中,所有的数据(包括数字和字符串)实际都是对象。

在python中,一个数字是一个对象,一个字符串是一个对象,每个数据都是对象。同一类型的对象都有相同的类型。你可以使用id函数和type函数来获取关于对象的一些信息。例如:

《Python语言程序设计》——3.5 对象和方法简介
《Python语言程序设计》——3.5 对象和方法简介

当执行程序的时候,python会自动为对象的id赋一个独特的整数。在程序的执行过程中,对象的id不会改变。然而,每当执行程序时,python都可能会赋一个不同的id。python按照对象的值决定对象的类型。第2行显示数字对象n的id,第3行显示的是python已经被赋值给对象的id,而第4行显示它的类型。

在python中,一个对象的类型由类决定。例如:字符串的类是str(第15行),整数的类是int(第5行),浮点数的类是float(第10行)。术语“class”来自面向对象程序设计,这些都会在第7章中讨论。在python中,类(class)和类型(type)是一样的意思。

注意:id和type函数在程序设计里很少用到,但是它们是学习更多有关对象的好工具。

python中的变量实际上是一个对象的引用。图3-2显示前面的代码中变量和对象之间的关系。

《Python语言程序设计》——3.5 对象和方法简介

图3-2 在python中,每个变量实际就是一个指向对象的引用

第1行的语句“n=3”是将3赋值给了n,实际上是将3赋值给了一个int对象,这个对象是由变量n引用的。

注意:对于n=3,我们可以说n是一个整型变量,其值为3。严格说来,n是一个引用了int对象的变量,而这个int对象的值为3。简单讲,说n是一个值为3的整型变量也可以。

你可以在一个对象上执行操作。操作是用函数定义的。python中对象所用的函数被称为方法。方法只能从一个特定的对象里调用。例如:字符串类型里有像lower()和upper()这样的方法,它们返回大写字母或小写字母写成的新字符串。下面是一些如何调用这些方法的例子。

《Python语言程序设计》——3.5 对象和方法简介

第2行调用对象s上的s.lower()方法,返回一个小写字母表示的新字符串,然后将它赋值给s1。第5行调用对象s上的s.upper()函数,返回一个大写字母表示的新字符串,然后将它赋值给s2。

正如你在之前的例子中所看到的那样,一个对象调用方法的语法就是object.method()。

另外一个有用的字符串方法是strip(),它能被用来移除一个字符串两端的空格符。字符' '、t、f、r和n都是空格符。

例如:

《Python语言程序设计》——3.5 对象和方法简介

注意:如果你在eclipse上使用python,eclipse会自动在input函数输入的字符串后追加r。因此,你应该用strip()方法移除字符r:

《Python语言程序设计》——3.5 对象和方法简介

https://yqfile.alicdn.com/ed520f9b2f0d29729b0ad701bc6301d4a743749d.png" >

有关处理字符串和面向对象程序设计的更多细节将在第7章中讨论。

检查点

3.12 什么是对象?什么是方法?

3.13 如何找到一个对象的id?如何找到一个对象的类型?

3.14 下面哪种陈述是语句“n=3”最准确的含义?

(a)n是一个拥有整型值3的变量。

(b)n是一个对象的引用,该对象的值为整数3。

3.15 假如s是"tgeorgian",那么s.lower()和s.upper()是什么?

3.16 假如s是"tgoodtmorningn",那么s.strip()是什么?