在 __init__() 内更改对象的 class
Change class of object within __init__()
我正在尝试为我正在进行的项目创建我自己的分数 class 和我自己的数字 class。我想知道如何将分数 class 的 class 更改为一个数字,如果分母是 1.
当我查找这个问题时,我遇到了转换,我试图将其合并到我的代码中,但是 class 仍然没有改变。
class Number():
def __init__(self,number):
if isinstance(number,int):
self.number = number
elif isinstance(number, Fraction) and number.denominator == 1:
self.number = number.numerator
else:
raise TypeError()
class Fraction():
def __init__(self, numerator, denominator=Number(1)):
self.denominator = denominator
self.numerator = numerator
if self.denominator == 1:
self.__class__ == Number
print(type(Fraction(5)))
#I expected to get <class '__main__.Number'> but instead got <class '__main__.Fraction'>
当我返回数字的 class 时,使用 __new()__
有效。
我发现这个网站非常有用:click here
我正在尝试为我正在进行的项目创建我自己的分数 class 和我自己的数字 class。我想知道如何将分数 class 的 class 更改为一个数字,如果分母是 1.
当我查找这个问题时,我遇到了转换,我试图将其合并到我的代码中,但是 class 仍然没有改变。
class Number():
def __init__(self,number):
if isinstance(number,int):
self.number = number
elif isinstance(number, Fraction) and number.denominator == 1:
self.number = number.numerator
else:
raise TypeError()
class Fraction():
def __init__(self, numerator, denominator=Number(1)):
self.denominator = denominator
self.numerator = numerator
if self.denominator == 1:
self.__class__ == Number
print(type(Fraction(5)))
#I expected to get <class '__main__.Number'> but instead got <class '__main__.Fraction'>
当我返回数字的 class 时,使用 __new()__
有效。
我发现这个网站非常有用:click here