标签: Python进阶

5 篇文章

026、变量作用域
变量作用域 函数外部定义的变量可以在函数里面使用、修改和重新赋值,这涉及到Python中变量作用域的问题。 变量作用域(Variable Scope)是指变量的有效生存空间。 在函数中,Python会按照以下顺序,在各个作用域的命名空间中寻找变量: 函数局部作用域(Local Function Scope)。 闭包作用域(Enclosing Scope)。 全局作用域(Global Scope)。…
025、上下文管理器
上下文管理器 读写文件时,如果一个文件被打开,且未被正常关闭,可能会出现一些意想不到的结果。 Python提供了上下文管理器的机制来解决这个问题,它通常与关键字with一起使用。对于上面的例子,用with语句调用的方式为: with <expression>: <statements> with open('my_file', 'w'…
024、装饰器
装饰器 基础用法 以函数作为参数,并且返回一个新函数的函数是一个装饰器: def dec(f): print(f'I am decorating function {f.__name__}') return f dec(len) I am decorating function len 装饰器可以在函数定义时用@调用: @dec def add(x, y): return x …
023、迭代器与生成器
迭代器与生成器 迭代器 可迭代对象可以在 for 循环中使用: x = [2, 4, 6] for n in x: print(n) 2 4 6 之所以可以被for循环迭代,是因为这些对象拥有一个迭代器,可以用.__iter__()方法获得: x.__iter__() 一个迭代器需要满足两个条件: .__iter__()方法返回自身 .__next__()方法返回下一个迭代值,当迭代完成后,抛出一…
022、函数进阶
函数进阶 函数的参数传递 Python的函数采用了引用传递的方法,即传递参数时,并不复制一份参数的内容,而是将参数的引用传递给函数。 例如: def f(x): return id(x) a = 1.2 id(a) 4485901776 f(a) 4485901776 函数f(a)的返回值与a的内存地址是一致的。这表示,当函数f()被调用时,Python并没有将a的值复制一份传给参数x,而是让参数…