Desde el PO menciona en un comentario:
I want 1 and 2
to return an instance of my class.
creo que es importante señalar que esto es totalmente imposible: Python no le permite alterar tipos integrados (y, especialmente, sus métodos especiales). Literal 1
siempre habrá una instancia de tipo incorporado int
, y en todo caso la semántica fundamentales del titular and
no son reemplazable de todos modos - a and b
es siempre idéntica a b if a else a
para cualquier a
y b
(sin coacción bool
involucrado, a pesar de que el OP parece creer erróneamente que uno está sucediendo).
Repitiendo este punto crucial: el valor de a and b
es siempre, inalterablemente ya sea a
o b
- no hay ninguna manera de romper esta restricción semántica (incluso si a
y b
eran ejemplos de sus propias clases particulares - - aún menos, por supuesto, cuando están obligados a ser instancias de Python incorporado en int
! -).
¿Desea agregar un valor FileNotFound? – Juliano
Una búsqueda de Google o una búsqueda SO para "composición vs. herencia" podría ser útil aquí. – MatrixFrog