为什么在 MotorEngine Tornado 中保存新记录时使用断言?

Why use assert when saving new record in MotorEngine Tornado?

只是想知道在创建新记录时在 MotorEngine 的回调中使用断言有什么意义。我不明白,文档也不清楚。在回调中告诉员工叫 Bernardo 的目的是什么?您甚至没有将值传递给函数...

MotorEngine 是 Tornado 和 MongoDB 的异步 ORM。 https://motorengine.readthedocs.org/en/latest/getting-started.html#creating-a-new-instance

非常感谢!

def create_employee():
    emp = Employee(first_name="Bernardo", last_name="Heynemann", employee_id=1532)
    emp.save(handle_employee_saved)

def handle_employee_saved(emp):
    try:
        assert emp is not None
        assert emp.employee_id == 1532
    finally:
        io_loop.stop()

io_loop.add_timeout(1, create_employee)
io_loop.start()

我相信文档正在使用这些断言作为一种方式来向您展示回调接收到的值。它可以很容易地发表评论:

# emp is an object with employee_id of 1532

... 但断言也由 doctest 测试以确保文档保持最新。在您的实际应用程序中,您根本不会使用这样的断言。