为了账号安全,请及时绑定邮箱和手机立即绑定

在python函数中,我是否需要预先分配一个有条件地出现在if下的值?

在python函数中,我是否需要预先分配一个有条件地出现在if下的值?

ibeautiful 2022-09-27 09:18:40
在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条经验 获得超5个赞

简短的回答是肯定的。


如果你想在函数的后期做类似的事情:那么应该先分配到。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


查看完整回答
反对 回复 2022-09-27
?
慕村9548890

TA贡献1884条经验 获得超4个赞

您只需执行以下操作:

def func(x,y):
    z = 2 if x == 1 else None
    print(z)

这意味着将始终由或如果或或分别分配。z2Nonex == 1


查看完整回答
反对 回复 2022-09-27
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

为了防止“爆炸”,您必须在函数开始时或之前定义变量,在您的情况下,您可以使用:


def func(x, y):

    z = None

    if x == 1:

        z = 2


    if z and y == 1:

        print(z)


查看完整回答
反对 回复 2022-09-27
  • 3 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信