Non credo, ma ho pensato di chiederlo per ogni evenienza. Ad esempio, per l'uso in una classe che incapsula un int:python ha operatori di conversione?
i = IntContainer(3)
i + 5
E non sono solo interessati a questo int esempio, ero alla ricerca di qualcosa di pulito e generale, non ignorando ogni int e metodo di stringa.
Grazie, sunqiang. È proprio quello che volevo. Non mi ero reso conto che potevi sottoclassi questi tipi immutabili (provenienti dal C++).
class IntContainer(int):
def __init__(self,i):
#do stuff here
self.f = 4
def MultiplyBy4(self):
#some member function
self *= self.f
return self
print 3+IntContainer(3).MultiplyBy4()
Non proprio. Stavo cercando qualcosa come l'operatore di conversione C++, che sostituisce intelligentemente l'oggetto contenitore con qualunque cosa contenga nelle espressioni. – Alex
Questo fallirà per "5 + i", credo. – ars
ars, hai ragione, ho visto la tua risposta e mi manca __radd__ ... immagino che ora sia ok dopo aver cambiato la mia risposta ... –