使__init__在python中创建其他类

巴斯蒂安

我创建了自己的类my_classa并使用和初始化了两个变量b

万一试图创建一个my_classwith的对象a==b,我希望该对象只是oftype(a)而不是my_class

如何实现呢?如何修改以下实现?

class myclass:
    def __init__(self, a, b):
        if a == b:
            self = a
        else:
            myclass.a = a
            myclass.b = b
华伦天奴

正如其他人在评论中所说,我也不建议这样做。但是,如果您确实需要这样做,则此代码应该这样做:

class myclass(object):
    def __new__(cls, a, b):
        if a == b:
            return a
        else:
            instance = super(myclass, cls).__new__(cls)
            return instance

    def __init__(self, a, b):
        self.a = a
        self.b = b

您可以对其进行测试:

x = myclass(4, 4)
y = myclass(4, 6)
print(x) #this prints 4
print(y) #this prints <__main__.myclass object at ...>
print(y.a, y.b) #this prints 4 6

事实是__init__不能返回任何东西,如果您想返回应该使用的其他东西__new__

另请参见:如何在Python中从__init__返回值?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章