gpt4 book ai didi

Python 如果 kwargs 中的键和键为真

转载 作者:行者123 更新时间:2023-11-28 19:55:04 25 4
gpt4 key购买 nike

if 'force' in kwargs and kwargs['force'] is True:

感觉应该有更好的方式来写这个条件,因为我重复了键和变量。

最佳答案

假设您真的想检查返回的关键字参数是否为真,这是另一种稍微不同的方法:

if kwargs.get('force', False) is True:

我认为添加 False 参数对读者来说更明确/更清楚。

使用上面的方法,get 方法返回的每个值都会导致子句被跳过,除非它包含值 True

但是,Python 非常擅长将类型转换为 bool 值 - 通常根本不需要显式检查 is True。如果是这种情况,您可以简单地这样做:

if kwargs.get('force', False):

通过这种方式,该语句仅在少数情况下减少为 if False。以下是其中一些(可能不是全部 - 虽然 the docs says 这涵盖了所有这些):

  • 错误
  • None - Python 的空值
  • [](){}set() - 像 listtupledictset
  • ''"" - 空字符串
  • 0, 0.0 - 任何等于零的数字
  • 用户定义类的实例,如果该类定义了 __bool__()__len__() 方法,当该方法返回整数零或 bool 值时 错误

在这种情况下,get 方法返回的每个值都会导致子句被执行,除非它包含一个计算结果为 False 的值,例如一个上面的例子。任何其他值都将计算为 True。 (旁注:包含评估为 False 的值的容器仍然评估为 True,例如,[None, None]( 0, 0){False, False};对于没有经验的 Python 用户来说,这可能是意想不到的)。

如果您希望在您检查它的时间点将 key 添加到 kwargs 且值为 False:

if kwargs.setdefault('force', False):

关于Python 如果 kwargs 中的键和键为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31683724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com