从本实例学到什么
- 结合实例理解方法是什么
- 方法和函数的相同和不同之处
调用方法的例子
“Python入门100个实例(20)——对象的例子”一文以学生对象作为例子。
学生对象有多个属性组成,如下图所示。
其中有3个方法:
- 求总分方法sum()
- 求平均方法avg()
- 统计及格门数方法pn()
下面我们来看看如何调用上述3个方法。假设我们已经输入了小明的学号、姓名、性别和三门课的成绩,存入一个学生对象内,而引用小明这个学生对象的变量是sxm。
- 如何输出小明的总成绩?完整的语句是:print(sxm.sum()) 。
- 如何输出小明的平均分?完整的语句是:print(sxm.avg()) 。
- 如何输出小明及格了几门课?完整的语句是:print(sxm.pn()) 。
这里,sxm后的点号是成员运算符。sxm.sum()就是调用sxm对象的sum方法。
方法和函数的相同和不同之处
相同之处
相同之处,用一句话概括:方法是函数,是一种特别的函数。
不同之处
- 调用函数的写法和调用方法的写法是不同的。
调用函数的写法格式是:函数名(…),…代表0个或多个参数,如: len(name)。
调用方法的写法格式是:对象.方法名(…),…代表0个或多个参数,如: sxm.sum()。这里,sxm后的点号是成员运算符。sxm.sum()就是调用sxm对象的sum方法。 - 方法可以访问对象的属性,而函数不行。
输出小明的总成绩,完整的语句是:print(sxm.sum()) 。你会问,不传入三门课的成绩,sum方法怎么求出总分呢?这一问题提的好!下面的答复包含两点。
1) 如果把求总分定义为sum函数,那么就要传入三门课的成绩。调用sum函数的写法如:sum(68, 98, 88),其中68, 98, 88分别是语数外三门课成绩。
2) 调用sum方法,前面带有”sxm.”,这使得sum方法会在幕后去访问sxm对象的三门课成绩。而函数则没资格访问对象内的属性。 - 在类定义体内书写方法的定义。这将在以后讲解。
小结
- 方法是函数,是一种特别的函数,是可以访问对象属性的函数。
- 调用方法的书写格式是:对象.方法名(…),如sxm.sum()。
- 执行sxm.sum()方法时,将在幕后访问sxm对象的属性。