python写游戏(Making Games with Python & Pygame)

关于函数,方法,构造函数,模块中的函数的提醒(及它们之间的不同)

2018-07-23  本文已影响0人  庵下桃花仙

A Reminder About Functions, Methods, Constructor Functions, and Functions in Modules(and the Differenct Between Them)

函数和方法几乎相同,都是调用来实现某种功能。不同之处是:方法要有附加的对象。
例如:

调用函数foo()

foo()

调用名为foo()的方法,将其附加在变量名为duckie中的对象上

ducki.foo()

但是,值得注意的是。模块中函数的调用和方法的调用看起来几乎相同。为了区分,我们需要观察名字。看他究竟是何方妖孽,即是模块名字还是有对象的变量名字。很好区分,如果是模块的话,在程序顶部会导入模块。
例:sys.exit()就是模块中的函数,因为程序开头有声明import sys

构造函数(constructor function)可以和一般的函数同样调用,区别是构造函数返回一个新的对象。构造函数还可以简称为(ctor 或 see-tor)。返回新对象的函数的名称。通常首字母大写,因此我们在创建函数时,通常首字母小写。

例如,pygame.Rect()pygame.Surface()都是pygame模块中的构造函数 ,它返回新的Rect和Surface对象。

下面是一个例子,调用函数,调用方法和调用模块中的函数

代码

import whammy
fizzy()
egg = Wombat()
egg.bluhbluh()
whammy.spam()

解释

1、whammy是一个模块,第一行导入;
2、fizzy名称前什么都没有,后边跟括号,是一个函数调用;
3、Wombat()也是一个函数调用,在这种情况下,他是一个构造函数,返回一个对象。(首字母大写,不能保证就是一个构造函数,但是它一定与常规函数不同),返回的对象存储在变量名为egg当中;
4、egg.bluhbluh()是一个方法调用;
5、whammy.spam()是函数调用,不是方法调用。因为第一行导入了whammy模块。

上一篇 下一篇

猜你喜欢

热点阅读