从本实例学到什么

  1. 结合实例理解方法是什么
  2. 方法和函数的相同和不同之处

调用方法的例子

“Python入门100个实例(20)——对象的例子”一文以学生对象作为例子。

学生对象有多个属性组成,如下图所示。

avg在python中的用法 python avg()_对象

其中有3个方法:

  • 求总分方法sum()
  • 求平均方法avg()
  • 统计及格门数方法pn()

下面我们来看看如何调用上述3个方法。假设我们已经输入了小明的学号、姓名、性别和三门课的成绩,存入一个学生对象内,而引用小明这个学生对象的变量是sxm。

  1. 如何输出小明的总成绩?完整的语句是:print(sxm.sum()) 。
  2. 如何输出小明的平均分?完整的语句是:print(sxm.avg()) 。
  3. 如何输出小明及格了几门课?完整的语句是:print(sxm.pn()) 。

这里,sxm后的点号是成员运算符。sxm.sum()就是调用sxm对象的sum方法。

方法和函数的相同和不同之处

相同之处

相同之处,用一句话概括:方法是函数,是一种特别的函数。

不同之处
  1. 调用函数的写法和调用方法的写法是不同的。
    调用函数的写法格式是:函数名(…),…代表0个或多个参数,如: len(name)。
    调用方法的写法格式是:对象.方法名(…),…代表0个或多个参数,如: sxm.sum()。这里,sxm后的点号是成员运算符。sxm.sum()就是调用sxm对象的sum方法。
  2. 方法可以访问对象的属性,而函数不行。
    输出小明的总成绩,完整的语句是:print(sxm.sum()) 。你会问,不传入三门课的成绩,sum方法怎么求出总分呢?这一问题提的好!下面的答复包含两点。
    1) 如果把求总分定义为sum函数,那么就要传入三门课的成绩。调用sum函数的写法如:sum(68, 98, 88),其中68, 98, 88分别是语数外三门课成绩。
    2) 调用sum方法,前面带有”sxm.”,这使得sum方法会在幕后去访问sxm对象的三门课成绩。而函数则没资格访问对象内的属性。
  3. 在类定义体内书写方法的定义。这将在以后讲解。

小结

  1. 方法是函数,是一种特别的函数,是可以访问对象属性的函数。
  2. 调用方法的书写格式是:对象.方法名(…),如sxm.sum()。
  3. 执行sxm.sum()方法时,将在幕后访问sxm对象的属性。