gpt4 book ai didi

Python 类定义分配属性

转载 作者:行者123 更新时间:2023-11-28 22:02:10 24 4
gpt4 key购买 nike

我尝试在空闲状态下执行这段代码,但出现以下错误,

class Myclass():
i = 1

x = Myclass()
x.y = 10
x.i=10
x.i
# 10
x.y
# 10

此类只有 1 个属性“i”,但是当我分配 x.y = 10 时,Python 将如何允许它工作。这不是问题吗?我该如何防止它发生?

最佳答案

正如其他答案所提到的,这是一个功能而不是错误。

如果您只想强制执行一组有限的属性,您可以使用 __slots__new-style classes (继承自 object 的类):

class Myclass(object):
__slots__ = ['i']

>>> x = Myclass()
>>> x.i = 10
>>> x.y = 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Myclass' object has no attribute 'y'

关于Python 类定义分配属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850603/

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