2009年3月24日星期二

python 的 函数 vs 方法

python中函数和参数有什么不同?函数是实现一个操作的程序段,方法是一个对象运行时带有附加参数的函数。

例如: class zkfarmer:
def __init__(self, name):
self.age = age
def printname(self):
return self.name
def printage(age):
return age

执行下列语句
myname = zkfarmer('zkfarmer')
printmyname = myname.printname()

printage(100)

你可能会注意到printname()并没有调用前面的self变量,而事实上如果函数调用中缺少参数,Python会抛出异常--甚至实际上这个参数也没有什么用处,方法的特别指出就在于把实例对象作为参数的第一个参数传给了函数。调用myname.printname()相当于zkfarmer.printname(myname)。

方法的工作原理是:把实例对象和函数对象封装成一个抽象的对象:方法对象。以一个参数列表调用方法对象时,它就被重新拆封,用实例对象和原始的参数列表构造一个新的参数列表,然后函数对象调用这个新的参数列表。

没有评论:

发表评论