函数;{必备参数,关键字参数,默认参数[此参数必须跟在其他参数后面],动态参数}

--------------------------------------------------------------------------------------------------------

函数的作用域(分4种):

L:local ,本地(局部)作用域;即函数中定义的变量;

E;eclosing;嵌套父级函数的局部作用域; 既包含此函数的上级函数的局部作用域,但不是全局

G;global;全局变量(作用域):即模块级别定义的变量

B;build-in ;系统模块里的变量;

优先级:LEGB




-------------------------------

def myself_info(name,age):
          print ('Name:%s',%name,'Age:%s',%s)
 myself_info('eric',28)#必备参数
 -------------------------------------------------------
def myself_info(name,age):
          print ('Name:%s',%name,'Age:%s',%s)
 myself_info(Age=28,Name='eric')#关键参数
def myself_info(name,age,sex='male'):
          print ('Name:%s',%name,'Age:%s',%Age)
          print ('Sex: %s',%Sex)
         myself_info('eric',28)#默认参数
-------------------------------------------         
def add(*args):
    print(args)
    sum = 0
for i in args:
    sum+=i
    print(sum)
add(1,2,3,4,6,8,9)#动态参数(不定长参数)
---------------------n
('eric', 30) {'job': 'IT', 'hobby': 'games'}
------------------------------------------------
#函数名可以进行赋值,函数名也可做为函数的参数,和还作为函数的返回值;
def foo():
    def inner():
        return 8
    return inner

foo()#这里调用执行的是inner的内存地址
result = foo ()#赋值
print(result()):这里加括号的调用才是真正的拿到结果;
def f(n):
   return n*n
   
def foo (x,y,func):
    result = func(x)+func(y)#x=1,y=2;func执行就是f这个函数
       return result
re = foo(1,2,f)  #这里的f指f,这个函数被当参数传进来了;
 print(re)
 5