logo

Inplace vs standardní operátoři v Pythonu

Inplace Operators - Sada 1 Sada 2
Obyčejní operátoři provádějí jednoduché přiřazení. Na druhou stranu operátoři Inplace se chovají podobně jako normální operátoři kromě že jednají jiným způsobem v případě proměnlivých a neměnných cílů. 
 

  • The _přidat_ metoda dělá jednoduché sčítání vezme dva argumenty, vrátí součet a uloží ho do jiné proměnné, aniž by změnil některý z argumentů.
  • Na druhé straně _iadd_ metoda také bere dva argumenty, ale provede změnu na místě v prvním předaném argumentu uložením součtu do něj. Protože je v tomto procesu potřeba objektová mutace, neměnné cíle, jako jsou číselné řetězce a n-tice by neměl mít metodu _iadd_ .
  • 'add()' normálního operátorametoda implementuje ' a+b ' a uloží výsledek do zmíněné proměnné.Vložit operátor 'iadd()'metoda implementuje ' a+=b ' pokud existuje (tj. v případě neměnných cílů neexistuje) a změní hodnotu předávaného argumentu. Ale pokud ne, je implementováno 'a+b' .


Případ 1 : Neměnné cíle.  
V Neměnné cíle, jako jsou číselné řetězce a n-tice. Operátory Inplace se chovají stejně jako normální operátory, tj. probíhá pouze přiřazení, v předávaných argumentech nedochází k žádným změnám.
 

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) 

výstup:



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


Případ 2 : Proměnlivé cíle  
Chování operátorů Inplace v proměnlivých cílech, jako jsou seznamy a slovníky, se liší od normálních operátorů. The aktualizace i přiřazení se provádějí v případě proměnlivých cílů.
 

aritmeticko logická jednotka
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) 

výstup: 
 

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]


 

Vytvořit kvíz