Python-为采用int、元组、集合或列表的数字创建一个类.如何创建__init__方法



我想为采用int、元组、集合或列表的数字创建一个类。我试着在python中使用我对oop的少量知识,这就是我可以想出的__init__方法。但我不认为这是应该写的。此外,我不能迭代我的对象,当我打印对象时,我只得到对象id。我必须写另一个方法才能打印它吗?

class Numbers():
def __init__(self, num):
assert isinstance(num, int) or isinstance(num, list) or isinstance(num, set) or isinstance(num, tuple), 'invalid numbers'
if isinstance(num, int):
self.num = int(num)
elif isinstance(num, list):
self.num = list(num)
elif isinstance(num, tuple):
self.num = tuple(num)
elif isinstance(num, set):
self.num = set(num)
>>>b = Numbers([1,2,3,4,5])
>>>b 
<__main__.Numbers object at 0x000001DF24F25250>

您只需要定义一个__repr__方法。

您可能还需要对此进行检查
__str__和__repr_之间的区别?

class Numbers():
def __init__(self, num):
assert isinstance(num, int) or isinstance(num, list) or isinstance(num, set) or isinstance(num, tuple), 'invalid numbers'
if isinstance(num, int):
self.num = int(num)
elif isinstance(num, list):
self.num = list(num)
elif isinstance(num, tuple):
self.num = tuple(num)
elif isinstance(num, set):
self.num = set(num)
def __repr__(self):
return self.num.__repr__()

b = Numbers([1,2,3,4,5])
print(b)

最新更新