Python 对象是否可以返回整数但具有自定义类型?

Python 对象是否可以返回整数但具有自定义类型?,python,class,object,types,int,Python,Class,Object,Types,Int,是否可以在Python中执行此操作: class Foo(): def __init__(self): self.bar = MyClass() foo = Foo() assert foo.bar == 0 assert type(foo.bar) == MyClass 如果0是字符串,则可以在MyClass中使用_repr。值应为“0”,但类型应为MyClass。但是由于uuu repr uuu只能返回字符串,而foo.bar必须是int uu repr u

是否可以在Python中执行此操作:

class Foo():
    def __init__(self):
        self.bar = MyClass()

foo = Foo()  

assert foo.bar == 0
assert type(foo.bar) == MyClass

如果0是字符串,则可以在MyClass中使用_repr。值应为“0”,但类型应为MyClass。但是由于uuu repr uuu只能返回字符串,而foo.bar必须是int uu repr uu,因此无法工作。那么,有没有可能让MyClass()的值为0(int),但仍然保持其类型为MyClass?

您可以使用Python标准库的包来完成所讨论的内容,该库实现了。具体地说,您可以从
numbers.Integral
派生
MyClass
,并根据需要重写特殊方法。

您可以使用Python标准库的包来完成所讨论的内容,该库实现了。具体地说,您可以从
numbers.Integral
派生
MyClass
,并根据需要重写特殊方法。

如果参数为0,您可以重新定义
\uuuuuu eq\uuuu
以返回
True
。为什么不将整数存储在MyClass内?因此,您可以只执行类似于
assert foo.bar.val==0
assert type(foo.bar)==MyClass
的操作,我不明白这与
有什么关系。。。。无论如何,对象不会返回东西。对象是值。您不能是
int
MyClass
,除非
MyClass
源于
int
,这听起来像是XY问题,特别是如果您不能为
MyClass
@juanpa.arrivillaga提供必要的
\uuuuueq\uuuuuu
方法,或者除非您创建了一个新类,该类从
int
MyClass
两个方面进行乘法继承,如果
MyClass
被设计为用作.mixin,那么这可能是有意义的。如果参数为0,您可以重新定义
\uuuuuu eq\uuuu
以返回
True
。为什么不将整数存储在MyClass中呢?因此,您可以只执行类似于
assert foo.bar.val==0
assert type(foo.bar)==MyClass
的操作,我不明白这与
有什么关系。。。。无论如何,对象不会返回东西。对象是值。您不能是
int
MyClass
,除非
MyClass
源于
int
,这听起来像是XY问题,特别是如果您不能为
MyClass
@juanpa.arrivillaga提供必要的
\uuuu eq\uuuuu
方法,或者除非您创建了一个新的类,该类从
int
MyClass
两个方面进行乘法继承,如果
MyClass
被设计为一个混音器,这可能是有意义的。