函数调用,不仅仅是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)
转载请注明原文地址:https://ipadbbs.8miu.com/read-2524.html