python中使用关键字def来表示函数的定义。如下所示:
def make_shirt(size, mess):
print("the shirt's size is:" + str(size) + " and message is"+mess)
定义了一个函数名为make_shirt的函数,其中函数的参数可有可无,当没有参数时其括号和冒号是必不可少的,函数直接定义为:
def make_shirt():
print("this is demo")
一. 函数的参数
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
必选参数(位置参数):
def func1(a, b): #定义一个函数:包含两个参数a,b(a,b为位置参数)
print a, b
func1(1, 2) #调用时,这两个参数必填,如果只传入一个参数或不传入参数,报异常
默认参数:
def func1(a, b=4): #定义func1函数,包含位置参数a,默认参数b,默认值为4
print a, b
func1(1) #调用函数时,可以不用传默认参数,值默认为4
func1(1,2) #调用函数时,传默认参数时值为传入的值为2
可变参数:
def func1(numbers): #定义位置参数函数
for num in numbers:
print num
func1((1, 2, 3)) #调用时需要传入元组或列表
func1([4, 5, 6])
def func2(* numbers): #定义可变参数函数
for num in numbers:
print num
func2(1, 2) #调用时可以传入任意个数参数
func2(3, 4, 5)
number = ["23", "rose"]
func2(* number) #传入一个列表时可以用 * 变量名 来操作
关键字参数:
def func1(**numbers): #定义一个传入关键字参数的函数
print numbers
extra = {'city': 'Beijing', 'job': 'Engineer'} #定义一个字典
func1(city=extra['city'], job=extra['job']) #调用func1函数,传入两个参数
func1() #未传入参数
func1(**extra) #传入整个字典
func1(city=extra['city']) #传入1个参数