Python学习笔记 - 函数
根据廖雪峰的Python教程做成的笔记,其中不包含全部知识点,仅是重点或是容易发生混淆或者忘记的部分。
函数
test.py
def my_abs(x)
if x > 0:
return x
else:
return -x
main.py
from test import my_abs
def func():
a = -5
b = my_abs(a)
print(b)
return
参数
参数顺序必须是:
必选参数,默认参数,可变参数,命名关键字参数,关键字参数。
- 默认参数:(n = 0
)
def power(x, n = 2):
pass
- 可变参数:(
*parm
)
定义函数时,在参数前加
*
即可
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n
return sum
ret1 = calc(1,3,5)
ret2 = calc(1,3,5,7,9)
- 关键字参数:(
**kw
)
定义函数时,在参数前加
**
即可
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
return
person('Bob', 30, city = 'Beijing', mobile = '138xxxxxxx')
# name:Bob age:30 other:{'city':'Beijing', 'mobile':'138xxxxxxx'}
info = {'city':'Beijing', 'mobile':'138xxxxxxx'}
person('Bob', 30, **info)
- 命名关键字参数:(
*, parm
)
如果要限制关键字参数的名字,就可以使用命名关键字参数,例如,只接收city和job作为关键字参数。和关键字参数**kw
不同,命名关键字参数需要一个特殊的分隔符*
,*
后面的参数被视为命名关键字参数。
def person(name, age, *, city, job):
print(name, age, city, job)
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊的分隔符
*
了。
def person(name, age, *args, city, job):
print(name, age, args, city, job)