您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将默认参数定义为全局变量

将默认参数定义为全局变量

认变量 。因此,Python会创建 的副本 从那时起,它始终将引用作为认值传递。无需重新评估。

但是,您可以通过将 用作认对象来解决此问题,然后使用一条if语句相应地替换它。就像是:

**the_default = object()**
x = 1

def foo(a = **the_default** ):
    if a **is** the_default:
        a = x
    print a

x = 2
foo()

注意,我们is用来执行 引用相等 。因此,我们检查它是否确实是default_object。您不应the_default代码的其他地方使用该对象。

在许多Python代码中,它们None用作认值(从而减少了构造对象的数量)。例如:

def foo(a = **None** ):
    if a **is** None:
        a = x
    print a

但是请注意,如果执行此操作,则程序无法区分用户调用foo()用户调用foo(None)而使用则the_object使用户更难获得对该对象的引用。如果None也将是一个有效的候选者,这将很有用:如果您不想foo(None)打印'None',则不要x

其他 2022/1/1 18:51:26 有469人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶