s7day9【函数】

# 函数:
# def func(): #定义一个函数(形式函数) 可以用做返回值。 执行函数的第一步
# print(123)# 函数体 执行函数第三步输出结果。
# func() #函数的调用,可以接收返回值,传入参数(实参) 执行函数的第二步
#
# def func(a,b):
# print(a,b)
# func(a,b)
#
# func(1,2) #按照位置传参
# func(a=1,b=2)#按照关键字传参
# func(1,b =2)#混用:必须先按照位置传参再按照关键字传参。

# 默认参数
# def func(a,b = 2): # b= 2就是默认参数
# print(a,b)
# func(1,3)

# func(1,3) ==>> 1 ,3 #若同时满足位置传参,就传入实际参数,覆盖了默认参数。
# func(1,) ===>> 1 ,2 #若不输入就是传入默认参数
# func(a=1,b=3) ==>> 1 ,3 #关键字传参也能覆盖默认。
# 总结:
# 1、默认参数是可以不传的参数
# 2、如果不传,默认就是传入的默认参数,若传就传入的参数。
# 3、默认的值是定义阶段就确定的

# 特殊点,需要注意:
# def func(a = []):
# a.append(1)
# print(a)
# func([])
# func(a = [])
# func([])

# def func(a = []):
# a.append(998)
# print(a)
# func()
# func([])
# func()

#可以理解为列表的变化

# 动态传参
# def func(*args):
# count = 0
# for i in args:
# count += 1
# print(count)
# l=[22,333,444,55]
# func(*l)
# 在函数定义的角度上,*做聚合作用,将一个一个参数组合成元组
# 在函数调用的角度上,*做分散作用的,将一也元组或列表大散成多个参数。


# def func(**kwargs):
# print(kwargs)
# func(a =1, b=2)
# 将关键字传递过来的参数组合成一个字典。

# 在参数定义的角度所有的参数都是形式参数
# 1、位置传参
# 2、默认传参
# 3、动态参数:*args **kwargs
# 在调用参数的角度上所有的参数都是实际参数
# 1、位置传参
# 2、关键字传参
# 3、混用,按是位置传参为开头的。


装饰器:
def wrapper(func):
  def inner(*args,**kwargs):
    print("执行函数之前需要添加的内容:")
    ret = func(*args,**kwargs)
    print("执行函数之后需要添加的内容")
    return ret
  return inner

@wrpper
def a():
  print("123")
a()
这就是一组简单的装饰器函数。
===========================================================================================================================================================

17.12.1添加

 



posted @ 2017-08-29 19:38  hello沃德  阅读(60)  评论(0)    收藏  举报