Links

3.函数

函数定义

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
​
def test(str): # def 函数名(参数) :
print(str) # 函数体
return

参数传递

由于python的所有类型都是对象类型(包括int,float),变量中保存的都是对象的地址。因此函数的参数传递都是指针传递。

参数

  • 必需参数
  • 关键字参数
  • 默认参数
  • 不定长参数

必须参数

​
def test(str1,num1,str2):
num2 = num1 + 1
str3 = str1 + str2
print(num2,str3)
​
test("123",1,"1234")
如上 str1,num1,str2都是必须参数,不可以少,且顺序不可以变

关键字参数

​
# 仍是上面定义的test方法
​
test(str2 = "dadsa",str1 = "2131", num1 = 11)
可以通过关键字表明是传递的是哪个参数,这样可以不按顺序传入

默认参数

调用函数时,如果没有传递参数,则会使用默认参数;默认参数的后面必须都是默认参数
​
def test(str1,num1 = 0,str2 = "123"):
num2 = num1 + 1
str3 = str1 + str2
print(num2,str3)
​
​
test("DASD")
如上num1,和 str2 有默认的参数,但是不可以num1为默认参数,而str2不是

变长参数

有些函数的参数的个数是不确定的,如,def print(self, *args, sep=' ', end='\n', file=None):这里就会需要变长参数
​
def functionname([formal_args,] *var_args_tuple ):
​
def functionname([formal_args,] *var_args_dic ):
变长参数有两种形式,一种是