函数

Python中的函数与其它语言中的函数含义一样,是代码块的集合,但是具体内部调用栈如何实现,以后再慢慢深究。
函数以def开始,然后是函数名,形参列表,最后是一个冒号,如下。

def say(word):
    print word

但是需要注意的是python中的函数内部变量默认采用局部变量,也就是说如果在函数内部直接使用了全局变量,那么默认是当做局部变量的,在这种情况下会报出没有初始化的错误。如果函数内要使用全局变量,需要添加global声明。

name = 'Ken'

def say(word):

    #使用全局的name
    global name
    print name + ' ' + word

使用默认参数

除此之外,在调用函数时函数的参数允许使用默认值,但是默认值的形参需要在参数列表的末尾,如下。


def say(word, name='Ken'):
    print word + name

#不使用默认参数
say('Hello~', 'Mike')

#使用默认参数
say('Hello~')

使用关键参数

在一些情况下,我们在调用函数时只需要修改特定的几个参数,其它的使用默认值,这时就可以采用如下的方式。

def showInfo(name, age=18, score=90, gender='Male'):
    print "name: %s, age: %d, score: %d, gender: %s"%(name, age, score, gender)

#使用默认参数
showInfo('Ken')

#改变关键参数
showInfo('Jane', gender='Female')

使用不定长参数

有些时候我们传入的参数的长度可能是不固定的,就比如我想打印一些信息,但是这些信息包括姓名年龄性别中的一项或几项,这个时候不定长参数就派上用场了。


def print_info(*info):
    for i in info:
        print i

print_info('Kangkang', 24, 'Male')

#此时如果传入list或tuple,可以使用*放在它们的前面。直接传入的话将作为一个整体变量
L = ['Kangkang', 24, 'Male']
print_info(*L)