gpt4 book ai didi

python - 如何限制对象的创建

转载 作者:太空狗 更新时间:2023-10-30 02:20:02 24 4
gpt4 key购买 nike

考虑下面的例子

class Key:
def __init__(self, s):
self.s = s

d = {}

for x in range(1, 10000):
t = Key(x)
d[t] = x

这将创建 10000 个 key 。是否可以控制类key的对象创建,比如我们不能创建超过5个key类的对象。不应以任何方式更改循环。

最佳答案

您可以通过给类一个 __new__ method 来控制对象的创建方式或数量。 :

class Key(object):
_count = 0

def __new__(cls, s):
if cls._count == 5:
raise TypeError('Too many keys created')

cls._count += 1
return super(Key, cls).__new__(cls, s)

def __init__(self,s):
self.s = s

Key.__new__() 被调用来创建一个新的实例;在这里,我记录了创建的数量,如果太多,则会引发异常。您还可以在字典中保留一个实例池,或以其他方式控制新实例的创建。

请注意,这仅适用于 new-style classes , 继承自 object.

关于python - 如何限制对象的创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25664060/

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