Can global variable be passed into Python function?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Fri Feb 21 03:55:12 EST 2014


On Thu, 20 Feb 2014 22:37:59 -0800, Sam wrote:

> I need to pass a global variable into a python function. However, the
> global variable does not seem to be assigned after the function ends. Is
> it because parameters are not passed by reference? How can I get
> function parameters to be passed by reference in Python?

You cannot. Python does not support either pass-by-reference or pass-by-
value calling conventions. Instead, it supports the same calling 
convention as Java, Ruby and other modern languages (which confusingly 
those two languages both call something different), "call by object 
sharing".

To understand more about Python's calling convention, and why neither 
call-by-reference nor call-by-value are appropriate, please read these 
articles:

https://mail.python.org/pipermail/tutor/2010-December/080505.html
http://effbot.org/zone/call-by-object.htm

and also see the Wikipedia article:

http://en.wikipedia.org/wiki/Evaluation_strategy


If you show us a sample of your code, together of a sample of how you 
expect it to work, we can suggest an alternate way to solve that problem.



-- 
Steven



More information about the Python-list mailing list