我创建了自己的类my_class
,a
并使用和初始化了两个变量b
。
万一试图创建一个my_class
with的对象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__
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句