Код: Выделить всё
class DeviceId(int):
def __new__(cls, material_id):
if isinstance(material_id, str):
material_id = int(material_id)
return super().__new__(cls, material_id)
def __init__(self, material_id):
self._material_id = material_id
Код: Выделить всё
def test_device_id_new_with_str_material_id():
device_id = DeviceId(material_id="123456")
assert isinstance(device_id, int) # this goes True
assert device_id == 123456 # this goes False
Почему?
Я использую Python 3.10.12 и pytest 7.4.4
Подробнее здесь: https://stackoverflow.com/questions/790 ... rison-is-t