Recent Posts

Python iterable & iterator

2 minute read

这里来梳理一下 python 中和 for 循环有关的两个概念:iterable 和 iterator。

python dataclass

less than 1 minute read

每个 Python 开发者或多或少都写过类似如下的代码: ```python class Foo: def init(self, attr_a, attr_b): self.attr_a = attr_a self.attr_b = attr_b

python 中的 DAO 模式

less than 1 minute read

在学习 Redis University 的 RU102PY-Week1 课程时,遇到了 DAO 模式。之前一直以为这种都是 Java 领域的概念,看来是误解了。

Flask 中的异常处理

less than 1 minute read

在开发 flask 应用时,一个常见的需求是能够全局捕获异常并根据异常类型返回相应的 response。 flask 框架提供了这种能力,通过注册 errorhandler 函数来实现。它会将某种异常和对应的异常处理函数“绑定”在一起,当异常发生时调用该处理函数。 一般地,可以在 create_app 函数中添加...

Python Exception Log

less than 1 minute read

今天学到的一个 Python 小技巧:如何正确地在日志中记录 exception? 方法就是,捕获到异常后打印异常信息,使用 repr(e) 而不是 str(e),因为前者包含了异常类型和异常的 message,而后者只有 message。

Python Context Manager

less than 1 minute read

如何管理资源是写代码时必须要注意的一个问题。这里的资源常常指的是文件描述符、锁、网络或数据库连接等。在很多语言中,往往通过 try-catch-finally 的范式来处理。但是 Python 提供了 with 语句来做这类事情,更为简便、优雅:

Handle AttributeError of NoneType object

less than 1 minute read

Python 是一种解释型语言,有时在运行的时候会对 None 对象获取属性值,从而抛出异常。例如: >>> foo = None >>> foo.bar Traceback (most recent call last): File "<stdin>", li...

Python boolness method

less than 1 minute read

Python 中有的对象是有 bool 属性的,比如空列表、空字符串、空字典、数字 0 都可以表示为 False。