python 函数碎片化知识点

args: arguments 参数的意思

kwargs:keyword arguments 关键字参数的意思

 

*args :  可以接收任意多个位置参数, 元组

例子 def fn1(*args )

           print(args )

    fn(1,2,3)

**kwargs:  接收任意多个关键字参数,字典

例子 def fn1(**kwargs )

           print(kwargs )

    fn(a=1, b=2, c=3)

 

返回值: 如果不写return 默认返回None; return 会立刻结束函数,并返回值

 

函数参数顺序:

     形参顺序: 位置参数, *args,  默认参数, **kwargs

     如: def fn(a, b, *args, c=1, e=2, **kwargs)

 

函数嵌套

函数名称: 既是函数名,也是指向该函数的变量(对象);只要是指向该函数的变量,就可以调用该函数。

     def fn3(x)

          print("fn3:", x )

    

   fn3(1) #fn3: 1

   f3 = fn3

   f3(2) #fn3: 2

 

匿名函数: lambda

    特点: 没有函数名称; 自带return; 只表示一些简单,有返回值的函数

   def fn(x):

        return x**2

  =>  lambda x: x**2

 

高阶函数 : 把一个函数作为参数传入另外一个函数中

   map: 映射,对列表做批量处理

  n = map(lambda x:x**3)

  print(list(n)) # [1, 8, 27]

  

filter:  过滤,找到符合要求的数据

 n = filter(lambda x: x>0, [-1, -2 0, 3])

print( list(n ))

 

回调函数: 把函数当做参数传入另一个函数中

     def fn(n, cb)

         n2 = cd(n)

 sort(key = lambda)

     降序: reverse = True

        print(n2) ## 9

fn(3, lambda x: x**2). 

 

函数的作用域:变量起作用的范围

    全局变量: 全局作用域,不会释放内存

    局部变量: 局部作用域,退出作用域(函数)时会自动将变量占的内存释放掉

   if while for 语句没有作用域

   关键字: global   nonlocal(声明使用的是函数作用域下的变量)

 

闭包: 函数嵌套,且返回内部函数,就会形成闭包、

装饰器:作用是在其他函数的前面或者后面添加功能,但是不修改原函数

 

列表推导式: 用一行代码快速生成新列表

nums = [  i for i in rang(1, 6)]

 

 

生成器函数:

    1、函数内部要有yield

    2、需要用next来调用

    3、每个next都会在yield处暂停

    4、 yield 会暂停,可以返回值

 

 

  yield 用来定义生成器(generator),遇到 yield 就暂停函数,把值返回出去;下次迭代的时候,从暂停位置继续往下执行,不是从头跑。

普通函数 return:直接结束函数,销毁局部变量。 yield:暂停 + 保留现场

next()驱动生成器 / 迭代器往下走一步的内置函数,去执行代码直到碰到 yield,拿到产出的值;没有更多元素时抛出 StopIteration

例如:

def demo():

  yield 1。

  yield 2

g = demo() # 生成器对象,此时函数代码还没执行! res1 = next(g) # 启动,执行到 yield 1 → 返回1,暂停 res2 = next(g) # 从暂停位置继续跑,到 yield2 → 返回2,暂停 next(g) # 后面没有yield了,抛出 StopIteration

 

迭代器  Iterator

可迭代对象 Iterable

type() :  查看数据类型

isinstance()  判断某个变量是否为某个数据类型

可迭代器 Iterator

    可以使用for循环遍历

     可以使用next 调用

 

可迭代对象 Iterable

   可以使用for循环遍历

 

iter()  可以把可迭代对象转换成 迭代器

 

 

 

 

 

 

   

 

posted @ 2026-09-19 17:35  会飞de佩奇  阅读(4)  评论(0)    收藏  举报