在学习Python函数的时候,函数本身的定义和调用并不是很复杂,但是函数的参数类型和用法的确有些复杂。在此做一个小结,加深理解。
Python参数的定义
负责给函数提供一些必要的数据或信息,以保证函数的正常运行。
形式参数(parameter):在函数定义的时候使用到的参数,一般没有赋值(默认参数除外)。
实参(argument):在函数调用的时候实际赋予的值。
如果在函数定义时给定了形式参数,并且没有给该参数默认值,则在调用的时候必须给定一个实参
def SayHello(person):
print("Hi {0},nice to meet you!".format(person))
print('Nice to meet you too!')
SayHello('TOM')
Hi TOM,nice to meet you!
Nice to meet you too!
Python参数的类型
•普通参数 ◦普通参数是Python函数中最常见的参数,也叫做位置参数;
◦在函数定义的时候直接给定参数的名称,调用时按照参数的位置赋予参数值
◦注意,如果在一个函数中定义了多个普通参数,在调用赋值的时候,必须按照定义的顺序依次赋值。
◦
# Python函数的定义和调用语法
def func_name(parameter1,parameter2,...):
function_body
#调用
func_name(value1,value2,...)
•默认参数 ◦在函数定义的时候,给形式参数赋予一个默认值;调用函数的时候,如果没有给该参数赋新值,则使用函数定义时的默认值
◦如果位置参数和默认参数都存在,则必须将位置参数放在默认参数前
◦
# 使用默认参数
def Student(name,age,gender='male'):
if gender == 'male':
print("{0} is {1} years old, and he is a good student.".format(name,age))
else:
print("{0} is {1} years old, and she is a good student.".format(name,age))
# 调用上述函数Student
Student('WangXiaoli',20,'female')
Student('ZhangDayong',22)
WangXiaoli is 20 years old, and she is a good student.
ZhangDayong is 22 years old, and he is a good student.
•关键字参数 ◦定义的方式和默认参数一样,只不过像多个默认参数的集合
◦关键字参数是以键值对的形式,再调用的时候,并不需要考虑参数的位置
◦如果关键字参数函数中还有普通的位置参数,则在函数定义时,需要把普通参数放在前面。并且调用的时候,普通参数也必须放在前面
◦
# 使用关键字参数
def func_name(name='TOM',age=20,addr='No addr'):
print('I am a student.')
print("My name is {0}, and I am {1} years old, I come from {2}.".format(name,age,addr))
# 调用
# 关键字参数调用时,参数的位置是不重要的
func_name(name='WangMeili',addr='China',age=23)
# 关键字参数也属于特殊的默认参数
func_name()
I am a student.
My name is WangMeili, and I am 23 years o