简短的回答是肯定的。如果你想在函数的后期做类似的事情:那么应该先分配到。print(z)z您有一些选择:def func(x, y): if x == 1: z = 2 else: z = None# ordef func(x, y): z = None if x == 1: z = 2# ordef func(x, y): z = 2 if x == 1 else None
为了防止“爆炸”,您必须在函数开始时或之前定义变量,在您的情况下,您可以使用:def func(x, y): z = None if x == 1: z = 2 if z and y == 1: print(z)