gpt4 book ai didi

python - 在 python 中不满足条件时不创建对象?

转载 作者:行者123 更新时间:2023-11-28 20:15:07 25 4
gpt4 key购买 nike

如果在类的构造函数中不满足某些条件,是否可以不创建对象?

例如:

class ABC:
def __init__(self, a):
if a > 5:
self.a = a
else:
return None

a = ABC(3)
print(a)

这应该打印None(因为在这种情况下它不应该创建对象而是返回None)但是当前打印对象...

最佳答案

您可以使用 classmethod 作为备用构造函数并返回您想要的内容:

class ABC:
def __init__(self, a):
self.a = a

@classmethod
def with_validation(cls, a):
if a > 5:
return cls(a)
return None


a = ABC.with_validation(10)

a
<__main__.ABC at 0x10ceec288>

a = ABC.with_validation(4)

a

type(a)
NoneType

关于python - 在 python 中不满足条件时不创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47819741/

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