gpt4 book ai didi

python - "self.default = default if default else type()"是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:43 32 4
gpt4 key购买 nike

自从我开始工作(约 6 年)以来,我一直是 .NET 的一员。最近在做一个使用Django的项目,需要并行学习Python。很多时候我碰到的 Python 代码看起来很简单,但我就是看不懂。这是其中之一。

class TypedProperty(object):
def __init__(self, name, type, default=None):
self.name = "_" + name
self.type = type
self.default = default if default else type()

有人可以向我解释一下代码的最后一行是做什么的吗?

我希望这个问题不会太琐碎,因为我很难为它想出一个好的标题。

最佳答案

a if b else c 是一个条件表达式,如果 b 的计算结果为 True,则计算结果为 a,否则为 c。在给定的上下文中,这会检查 default 是否为 "trucy" ,在这种情况下,它存储在 self.default 中。否则,将创建一个新的 type 实例并存储在 self.default 中。

请注意,此实现有几个问题:

  1. 它使用 type 作为变量名,隐藏了内置的 type()。这被认为是糟糕的风格。

  2. 它使用条件 if default 而实际上应该使用 if default is None。该检查旨在测试参数 default 是否实际传递给了构造函数。实际上,该实现不会接受 evaluates to False 的任何默认值。 .

关于python - "self.default = default if default else type()"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5835784/

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