gpt4 book ai didi

python - 为什么在 python 中使用 __setattr__?

转载 作者:IT老高 更新时间:2023-10-28 20:30:28 25 4
gpt4 key购买 nike

我不知道为什么使用 __setattr__ 而不是像 x.a=1 这样的简单引用。

我理解这个例子:

class Rectangle:
def __init__(self):
self.width = 0
self.height = 0


x=Rectangle()
x.width=20
x.__setattr__('height',30)
setattr(x,'width',99)

但不明白为什么要根据字符串('height')使用代码。

您能解释一下 __setattr__ 的优点吗?

最佳答案

你不会自己调用它。时期。如果您因为事先不知道名称而需要使用字符串(非常在 99% 的情况下人们可能认为他们需要它的情况下是个坏主意,那么几乎总是 dict 或 list 会更好/saner 选择),您使用内置的 setattr 函数。

但是,它是为您调用的 - 当您执行 a.x = ... 时,会以 a.__setattr__('x', ...) (这可能是过于简单化了)。并且一些对象重载它以允许一些诡计,例如模拟不变性。 See the documentation of "special methods".

关于python - 为什么在 python 中使用 __setattr__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5755023/

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