logo

Inplace naspram standardnih operatora u Pythonu

Operatori na mjestu - Set 1 Set 2
Normalni operateri obavljaju jednostavan posao dodjele. S druge strane, Inplace operatori se ponašaju slično normalnim operatorima osim da djeluju na drugačiji način u slučaju promjenjivih i nepromjenjivih ciljeva. 
 

  • The _dodati_ metoda radi jednostavno zbrajanje uzima dva argumenta vraća zbroj i pohranjuje ga u drugu varijablu bez mijenjanja bilo kojeg od argumenata.
  • S druge strane _iadd_ metoda također uzima dva argumenta, ali vrši promjenu na mjestu u 1. proslijeđenom argumentu pohranjujući zbroj u njemu. Budući da je u ovom procesu potrebna mutacija objekta, nepromjenjivi ciljevi kao što su nizovi brojeva i torke ne bi trebao imati metodu _iadd_ .
  • Normalni operator 'add()'metoda implementira ' a+b ' i pohranjuje rezultat u spomenutu varijablu.Inplace operatera 'iadd()'metoda implementira ' a+=b ' ako postoji (tj. u slučaju nepromjenjivih ciljeva ne postoji) i mijenja vrijednost proslijeđenog argumenta. Ali ako nije implementirano je 'a+b' .


Slučaj 1 : Nepromjenjivi ciljevi.  
U nepromjenjivim ciljevima kao što su nizovi brojeva i torke. Operatori na mjestu ponašaju se isto kao normalni operatori, tj. odvija se samo dodjela, nema izmjena u proslijeđenim argumentima.
 

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) 

Izlaz:



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


Slučaj 2 : Promjenjivi ciljevi  
Ponašanje Inplace operatora u promjenjivim ciljevima kao što su popisi i rječnici razlikuje se od normalnih operatora. The ažuriranje i dodjela se provode u slučaju promjenjivih ciljeva.
 

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) 

Izlaz: 
 

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]


 

Napravi kviz