【发布时间】:2011-05-22 08:51:50
【问题描述】:
https://github.com/saucelabs/monocle
以下代码作为标准事件驱动编程的示例给出:
def get_cmd(conn): conn.read_until("\n", callback=handle_cmd) def handle_cmd(conn, cmd): 如果 cmd.type == “获取地址”: # 跟踪 conn 以便我们可以写回响应! def 回调(结果): 处理用户查询结果(conn,结果) db.query(cmd.username, 回调) 别的: conn.write("未知命令") def handle_user_query_result(conn,用户): conn.write(user.address)虽然我不明白为什么需要关闭。 “跟踪连接”与第一个函数“get_cmd”的工作方式相矛盾。另外,事件驱动框架通常不让你传递参数吗?
我猜这是一个更合理的例子:
def get_cmd(conn): conn.read_until("\n", callback=handle_cmd) def handle_cmd(conn, cmd): 如果 cmd.type == “获取地址”: db.query(cmd.username, callback=handle_user_query_result, params=conn) 别的: conn.write("未知命令") def handle_user_query_result(结果,参数): 用户 = 结果 conn = 参数 conn.write(user.address)我错了吗?
【问题讨论】:
标签: python event-handling yield