我正在寻找类似于(C)
的python if ((p = malloc(N * sizeof(*p))) == NULL) return 1;
像user = getUser() or return
这样的东西不起作用,也不会if (user = getUser() is None) return
- 什么是pythonic方式?
答案 0 :(得分:2)
如果您正在寻找一种方法来分配和检查指定的值,那么就没有一种方法,Python会阻止您创建一个。
user = get_user()
if user is None:
return None
答案 1 :(得分:2)
您可以在两种情况下使用context management:
get_user()
会返回您可以调整的课程类型
您愿意在get_user
返回的类中定义两个特殊函数,即
__enter__(self)
__exit__(self, exception_type, exception_value, traceback)
现在,让我们假设您的User
课程已经完成并准备就绪,然后您可以编写以下内容
with get_user() as user:
# do what you need to do
因此,这种分配发生在with
语句中,该语句在进入和退出上下文管理范围时调用您的特殊方法。在这些方法中,您可以指定检查以及失败或成功的行为以符合您的规范