Python

nonlocal 与 global

nonlocal 与 global global关键字用来在函数或其他局部作用域中使用全局变量 nonlocal关键字用来在函数或其他局部作用域中使用外部嵌套函数内的变量 def getPath(node, target): result = [] def dfs(node, target, path): path.append(node) if node.val == target.val: nonlocal result result = path.copy() return 思考,如果是在类中,那么 OOP 方式的实例变量self.result 是不是比用 nonlocal 要更好一些呢?

阅读更多
如何在多个编程语言间切换自如

Attention 要自由切换编程语言,必然要通过实践,编程语言之海浩瀚无边,本文会随着作者的实践而不断更新,敬请期待。 基本思路 ¶ 熟悉各语言基本语法,怎么定义变量、函数、控制流等,这里有语法简介、数据结构等章节。 识别各语言的特性,为什么 Python 有元组等,也就是要知道语言的特性和高级用法等。 在熟悉基本语法时,要能搞清楚各编程语言怎么描述相同的功能的。 在识别语言特性时,要能搞清楚各编程语言处理方式上的设计哲学。

阅读更多
生成器 迭代器 装饰器

Magic Python -> ch4 heapq 是 Python 的一个标准模块,它提供了堆排序算法的实现。 带 yield 的函数是一个生成器,而不是一个函数了。这个生成器有一个函数就是 next 函数,next 就相当于“下一步”生成哪个数,这一次的 next 开始的地方是接着上一次的 next 停止的地方执行的。生成器中的 yield,可看做 “return” 。

阅读更多