python补漏——零碎知识点

1、函数的调用与嵌套

''函数的调用'''

def func3():
    pass
def func4():
    func3()


'''函数可以嵌套函数'''
def func1():
    b=20
    def func2():
    # 不能直接调用func2(),因为func2()相当于局部变量
        pass

ps:
1、如果想要调用函数内部嵌套的函数,只需要给函数内部加一个返回值,返回的是嵌套的函数

举例如下:
在这里插入图片描述
2、代理模式:函数可以作为参数进行相互传递!!!!
在这里插入图片描述
3、函数名称可以当成变量一样进行赋值操作
在这里插入图片描述
综上所述:
1)函数可以作为返回值进行返回
2)函数可以作为参数进行互相传递
函数名实际上就是一个变量名,都表示一个内存地址
3)函数名称可以当成变量一样进行赋值操作

2、global和nonlocal

global 用法:在局部,引入全局变量

1、未引入全局变量之前
在这里插入图片描述
2、把外面的全局变量引入到局部变量中
在这里插入图片描述

nonlocal用法:在局部,引入外层的全局变量

在这里插入图片描述

3、闭包

内层函数对外层函数的局部变量的使用,此时内层函数被称为闭包函数

1)可以让一个变量常驻于内存
2)可以避免全局变量被修改

在这里插入图片描述

4、装饰器

装饰器本质上是一个闭包,作用是:

在不改变原有函数调用的情况下,给函数增加新的功能

一般用在用户登录的地方、日志

雏形:

def wrapper():
  def inner(fn):
  # 在目标函数执行之前
  fn() # 执行目标函数
  # 在目标函数执行之后
  return inner

方法一:

def guanjia(game):

    def inner():
        print("打开外挂!!")
        game()
        print("关闭外挂!!")
    return inner

def play_dnf():
    print("你好呀,我叫赛利亚,今天又是美好的一天!")

def play_lol():
    print("德玛西亚!!!!")

'''让管家把游戏重新封装一遍,我这边把原来的游戏替换了'''
play_dnf=guanjia(play_dnf)
play_dnf() # 此时运行的是管家给的内层函数inner()
play_lol=guanjia(play_lol)
play_lol()

方法二:

def guanjia(game):

    def inner():
        print("打开外挂!!")
        game()
        print("关闭外挂!!")
    return inner

@guanjia # 相当于play_dnf=guanjia(play_dnf)
def play_dnf():
    print("你好呀,我叫赛利亚,今天又是美好的一天!")

@guanjia # 相当于play_lol=guanjia(play_lol)
def play_lol():
    print("德玛西亚!!!!")


play_dnf() 

play_lol()

两种方法输出结果:
在这里插入图片描述

5、python中二维数组转变为一维数组

已知a = [[4, 0, 1], [9, 2, 7], [8, 12, 90]]

  1. 列表推导式
    [i for j in a for i in j]
  2. itertools
    from itertools import chain
    list(chain.from_iterable(a))
  3. sum小技巧
    sum(a, [])
  4. operator
    import operator
    from functools import reduce
    print(reduce(operator.add, a))

6、list 二维数组的排序注意

已知a = [[4, 0, 1], [9, 2, 7], [8, 12, 90]]

错误写法:

a=a.list()

这样return a返回的是null

正确写法

a.list()
这样return a返回的是正确结果

7、list二维数组添加元素

list.append([i,j])

8、python安装requests 报错ERROR: Could not find a version that satisfies the requirement XXX解决方法

pip install 库包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值