python-3.x - 如果类对象的初始化在 Python 中具有不需要的值,则返回 False

标签 python-3.x

如果对象实例化没有适当的值,我需要返回 False。据我所知,使用 init 方法不可能做到这一点。是否有另一种方法可以用来检查值是否返回 bool 值?

class Test:
    def __init__(self,x,y,z):
        if x == 0 and y == 0 and z == 0:
            return False
        self.x = x
        self.y = y
        self.z = z

print(Test(0, 0, 0)) #should return False

最佳答案

Test(0,0,0) 是构造函数的调用,并且始终返回 Test 类的实例。尝试从 __init__ 返回任何值都会导致 TypeError

你真正想要的是 Factory PatternTestFactory 提供了一个用于创建测试的静态方法,该方法将返回 None,这是“无效”对象的更合理值,在您的特殊情况下,否则只是一个普通的测试。 p>

class Test:
    def __init__(self,x,y,z):
        self.x = x
        self.y = y
        self.z = z

class TestFactory:
    @staticmethod
    def create_test(x,y,z):
        if x == 0 and y == 0 and z == 0:
            return None
        else:
            return Test(x,y,z)

print(TestFactory.create_test(0,0,0))

关于python-3.x - 如果类对象的初始化在 Python 中具有不需要的值,则返回 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599499/

相关文章:

python - 为什么一个类中的类不在另一个类中的类的范围内?

python - 使用 Python (API v4) 从 Google 工作表读取单元格格式

python - 如何键入注释字符串的长度?

Python MySql Connector 准备语句和字典类

python - 如何从 Python 列表中删除偶数?

python - 升级默认 python 版本或在 Linux 中安装另一个 python 版本

python - 在 Anaconda 中安装 pyspec 模块

python - 如何使用 .loc 在 for 循环中将数据帧行追加到另一个数据帧行?

python-3.x - Elasticsearch 嗅探失败

python - 尝试使用 "requests"模块时导入错误