形式参数不占运行空间,只有传入实参后才占,用完立刻释放空间。
函数一遇到 return 就结束掉了
函数名() :运行函数,有返回值的话用变量承接
def test(x): # x称为形式参数 #注释函数功能 x += 1 #代码块 return x #返回值
例:
def test(x): y = 2 * x + 1 return y a = test(3) print(a)
1. 代码的重用
2. 保持一致性,易维护
3. 可扩展性
def logger():
‘日志功能‘
pass
def index():
logger() #调用函数使用日志功能
print(‘index‘)
def home():
logger() #调用函数使用日志功能
print(‘home‘)
过程就是没有返回值的函数
没有返回值(没有写return),返回None
返回一个值,返回object
返回多个值(return 0,1,2,3),返回tuple(0,1,2,3)
def test(): x = 2 y = x ** 2 return y a = test() print(a)
def test(x, y, z): print(x) print(y) print(z) test(1, 2, 3)
def test(x, y, z): print(x) print(y) print(z) test(y = 1, x = 3, z = 2)
test(1, y = 2, 3) #报错 test(1, 3, z = 2, y = 4) #报错,y只能传一个值 test(1, 3, z = 2) #正确
def test(x, type = ‘dabai‘): print(x) print(type) test(1) test(1, ‘唉‘) # 传入的实参会覆盖默认参数
def test(x, *args):
print(x)
print(args)
print(args[0])
test(1, 2, 3, 4, 5)
开发的时候,预留一个 *args 用来以后扩展时用,可以先不传入参数,不会报错
传入列表和字典时,把列表和字典当成一个整体作为了元组的第一个元素
def test(x, *args): print(x) print(args) test(1, {‘name‘: ‘dabai‘}) test(1, [2,3,5,6,7])
def test(x, *args): print(x) print(args) test(1, *[2,3,5,6,7])
def test(x, **kwargs): print(x) print(kwargs) test(1, y = 2, z = 3)
def test(x, *args, **kwargs): print(x) print(args, args[1]) print(kwargs, kwargs.get(‘z‘)) test(1, 1, 2, 3, 4, 5, y=2, z=3)
def test(x, *args, **kwargs): print(x) print(args, args[1]) print(kwargs, kwargs.get(‘z‘)) test(1, *[1,2,3,4], **{‘z‘: 1, ‘y‘: 3})
原文:https://www.cnblogs.com/dabai123/p/11027965.html