如果在类的构造函数中不满足某些条件,是否可以不创建对象?
例如:
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/