Ranter
Join devRant
Do all the things like
				++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
				Sign Up
			Pipeless API
 
				From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
				Learn More
			Comments
		
- 
				
				Not to be an A hole but I don't think anybody has learnt a programming language so abstracted that they don't understand the ++ and - - reference.
- 
				
				@varundey It's just a joke
 
 But Python doesn't actually support ++, it uses +=1 instead so someone who only recently started programming with python might not understand
- 
				
				@Memeamphetamine I know. I'm a python dev. I had this sudden urge of pointing it out right after I read your rant. Peace :)
- 
				
				 elazar10179y@divil it's an expression with side effect. It shouldn't be actively encouraged by the language elazar10179y@divil it's an expression with side effect. It shouldn't be actively encouraged by the language
- 
				
				 garrettw2619y@elazar true, but those who know how to use it well (and understand the difference between var++ and ++var) can write some nifty expressions 😉 garrettw2619y@elazar true, but those who know how to use it well (and understand the difference between var++ and ++var) can write some nifty expressions 😉
- 
				
				 garrettw2619yI'm not a Python dev so someone tell me – can (var += 1) be used as an expression which evaluates to the new value of var? garrettw2619yI'm not a Python dev so someone tell me – can (var += 1) be used as an expression which evaluates to the new value of var?
- 
				
				 garrettw2619y@Memeamphetamine ok let me try to explain. garrettw2619y@Memeamphetamine ok let me try to explain.
 
 var = 2
 var += 1
 ---- so all this does is set var to 3. Simple assignment statements.
 
 var = 1
 if ((var += 1) == 2) {
 echo 'success'
 }
 ---- this sets var to 1, then adds 1 to it, and compares the result with 2. They are equal, so the text is printed. This is what I meant by working as an expression.
 
 I'm not saying this is necessarily a good way to code, but it is a way.
- 
				
				@garrettw In Python, assignment is a statement not an expression. "If" requires an expression to evaluate, so this:
 
 if ((var += 1) == 2):
 
 throws an invalid syntax error.
 
 What really is handy about the augmented assignments is that the target is only evaluated once and, when possible, it is updated in place. In a = a + b, a gets evaluated twice. Also a new object is created and assigned to the new a. In a+=b, a gets evaluated only once, and for mutable types it's updated in place without creating a new object.
 
 Since integers are immutable, for something like var+=1 then it's mostly a convenient shorthand.
Related Rants










 No questions asked
No questions asked As a Python user and the fucking unicode mess, this is sooooo mean!
As a Python user and the fucking unicode mess, this is sooooo mean!
 I just started working on a little project to browse devrant from terminal. It converts images to ascii art!
I just started working on a little project to browse devrant from terminal. It converts images to ascii art!
A moment of silence to all the python devs that don't get the ++ and -- reference
undefined
--
++
decrement
increment
python