如果我尝试以下代码(在Python 3.2.2中), raise Exception
然后,看起来x是原封不动的-它要么保持未定义,要么保留它以前拥有的任何值当赋值的右侧抛出异常时,这一行为是否得到保证?我意识到这是一个非常基本的问题,但我找不到太多关于任务具体是如何工作的信息。更一般地,是否总是在与赋值相关的任何事情发生之前对整个右侧进行计算?当使用setattr,赋值给列表的元素,或者使用元组解包(例如,类似x, y = y, f()的东西)时,这是真的吗?
stu_dict = [{raw_input():int(raw_input())} for i in xrange(1)] 对于上面的代码,输入应该如下所示:4和r,它打印为[{'r': 4}],这意味着它在这里以4作为值,以r作为键!a = [[raw_input(), float(raw_input())] for i in xrange(int(raw_input()))] 为什么会这样呢?