logo

Operatori interni e operatori standard in Python

Operatori sul posto - Insieme 1 Insieme 2
Gli operatori normali svolgono il semplice lavoro di assegnazione. D'altra parte gli operatori Inplace si comportano in modo simile agli operatori normali tranne che agiscono in modo diverso in caso di bersagli mutabili e immutabili. 
 

  • IL _aggiungere_ Il metodo esegue una semplice addizione prende due argomenti restituisce la somma e la memorizza in un'altra variabile senza modificare nessuno degli argomenti.
  • D'altra parte _iadd_ Anche il metodo accetta due argomenti ma apporta una modifica sul posto nel primo argomento passato memorizzando la somma al suo interno. Poiché in questo processo è necessaria la mutazione degli oggetti, sono necessari obiettivi immutabili come stringhe di numeri e tuple non dovrebbe avere il metodo _iadd_ .
  • 'add()' dell'operatore normaleil metodo implementa ' a+b ' e memorizza il risultato nella variabile menzionata.Inplace operatore 'iadd()'il metodo implementa ' a+=b ' se esiste (ovvero in caso di obiettivi immutabili non esiste) e modifica il valore dell'argomento passato. Ma in caso contrario viene implementato "a+b". .


Caso 1 : Obiettivi immutabili.  
In obiettivi immutabili come stringhe di numeri e tuple. Gli operatori sul posto si comportano come gli operatori normali, ovvero avviene solo l'assegnazione, nessuna modifica viene apportata agli argomenti passati.
 

Python
# Python code to demonstrate difference between  # Inplace and Normal operators in Immutable Targets # importing operator to handle operator operations import operator # Initializing values x = 5 y = 6 a = 5 b = 6 # using add() to add the arguments passed  z = operator.add(ab) # using iadd() to add the arguments passed  p = operator.iadd(xy) # printing the modified value print ('Value after adding using normal operator : 'end='') print (z) # printing the modified value print ('Value after adding using Inplace operator : 'end='') print (p) # printing value of first argument # value is unchanged print ('Value of first argument using normal operator : 'end='') print (a) # printing value of first argument # value is unchanged print ('Value of first argument using Inplace operator : 'end='') print (x) 

Produzione:



Value after adding using normal operator : 11 Value after adding using Inplace operator : 11 Value of first argument using normal operator : 5 Value of first argument using Inplace operator : 5


Caso 2 : Obiettivi mutevoli  
Il comportamento degli operatori Inplace nelle destinazioni modificabili come elenchi e dizionari è diverso dagli operatori normali. IL vengono effettuati sia l'aggiornamento che l'assegnazione in caso di bersagli mutabili.
 

Python
# Python code to demonstrate difference between  # Inplace and Normal operators in mutable Targets # importing operator to handle operator operations import operator # Initializing list a = [1 2 4 5] # using add() to add the arguments passed  z = operator.add(a[1 2 3]) # printing the modified value print ('Value after adding using normal operator : 'end='') print (z) # printing value of first argument # value is unchanged print ('Value of first argument using normal operator : 'end='') print (a) # using iadd() to add the arguments passed  # performs a+=[1 2 3] p = operator.iadd(a[1 2 3]) # printing the modified value print ('Value after adding using Inplace operator : 'end='') print (p) # printing value of first argument # value is changed print ('Value of first argument using Inplace operator : 'end='') print (a) 

Produzione: 
 

Value after adding using normal operator : [1 2 4 5 1 2 3] Value of first argument using normal operator : [1 2 4 5] Value after adding using Inplace operator : [1 2 4 5 1 2 3] Value of first argument using Inplace operator : [1 2 4 5 1 2 3]


 

Crea quiz