函数调用,底层内存,全局变量,局部变量,浅拷贝,深拷贝,参数类型

    技术2022-07-10  97

    函数调用,不仅仅是value;全局变量,局部locals(),同名字优先局部变量,可用globals()调用全部,局部效率比全局的高,尤其循环中;浅拷贝:b=copy.copy(a),b不去自己生存内存值,直接调用a,b[2].append(7)会直接改变a的结构深拷贝:b=copy.deepcopy(a),自己b重新构建一个内存,后续填字段啥的,和a无关;传递不可变对象发生拷贝,是浅拷贝;不可变对象里面含有可变的因子,可变的因子是可以添加的(2,3,[4,5])里面的[4,5]可变;参数类型: 可变参数 def a(a,*c),*c元组,**c字典;可变参数后面跟参数,需要强制参数命名,要不然后面的参数会被认为是可变参数中的数据; def f1(*c,a,b) f1(2,3,4,a=1,b=2) lambda 表达式,匿名函数,用法如下 这个可以直接这么用,算出来是16,走的4*4; g = [lambda a:a*2,lambda b:b*4] print(g[1](4)) eval()目前不知道应用场景;递归函数,自己调用自己,需要结束条件,先进后出; 10.递归函数来做阶乘,5!=54321; 先进后出,算出来120; def factorial(n): if n==1: return 1 else: return n*factorial(n-1) s=factorial(5) print (s)
    Processed: 0.012, SQL: 9