0
点赞
收藏
分享

微信扫一扫

python补漏——零碎知识点

倚然君 2022-04-14 阅读 86
python

1、函数的调用与嵌套

''函数的调用'''

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


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

2、global和nonlocal

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

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

在这里插入图片描述

3、闭包

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

在这里插入图片描述

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中二维数组转变为一维数组

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

错误写法:

正确写法

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
举报

相关推荐

0 条评论