在python函数中,我是否需要预先分配一个有条件地出现在if下的值?def func(x,y): if x == 1: z = 2 else: pass if y == 1: print(z) else: pass我在这里看到的问题可能会爆炸,如果和.为了潜在地防止此错误引发程序,我是在函数的开头声明还是使用 try-except 来打印或其他方法?最佳实践是什么?print(z)x != 1y == 1z = Nonez
3 回答

梦里花落0921
TA贡献1772条经验 获得超6个赞
简短的回答是肯定的。
如果你想在函数的后期做类似的事情:那么应该先分配到。print(z)z
您有一些选择:
def func(x, y):
if x == 1:
z = 2
else:
z = None
# or
def func(x, y):
z = None
if x == 1:
z = 2
# or
def func(x, y):
z = 2 if x == 1 else None

慕村9548890
TA贡献1884条经验 获得超4个赞
您只需执行以下操作:
def func(x,y): z = 2 if x == 1 else None print(z)
这意味着将始终由或如果或或分别分配。z
2
None
x == 1

缥缈止盈
TA贡献2041条经验 获得超4个赞
为了防止“爆炸”,您必须在函数开始时或之前定义变量,在您的情况下,您可以使用:
def func(x, y):
z = None
if x == 1:
z = 2
if z and y == 1:
print(z)
添加回答
举报
0/150
提交
取消