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 要更好一些呢?

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

基本思路 基本结构和控制流要记住,也就是熟悉基本语法 识别各自语言的特性,也就是知道高级特性 本文主要是熟悉基本语法,搞清楚不同的编程语言怎么描述相同的功能的。对于高级特性,点到为止。 语法简介 语法特性 Python Go 变量声明 动态类型,无需声明 静态类型,必须声明 代码块 缩进(空格/制表符) {} 包裹 循环 for、while 只有 for 函数 def,支持默认参数 func,无默认参数 错误处理 try-except 返回 error + if err != nil 并发 threading(GIL 限制) goroutine + channel 面向对象 完整类继承 struct + interface 包管理 pip + import go mod + import 内置函数 Python 的内置函数更丰富,适合快速开发;Go 的内置函数较少,但更专注于底层控制和性能优化。

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

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

阅读更多