Sam <lightai...@gmail.com> writes:

> I need to pass a global variable into a python function.

Python does not really have the concept "variable".

What appears to be a variable is in fact only the binding of an
object to a name. If you assign something to a variable,
all you do is binding a different object to the name.

Thus, if you have:

      i = 1
      def f(x): x = 5

      f(i)

Then "i" will remain "1" and not become "5".
The effect of "x = 5" is that the name "x" gets bound to "5"
(where is formerly was bound to "1").

>However, the global variable does not seem to be assigned after the function 
>ends. Is it because parameters are not passed by reference?

Python lacks the notion of "variable". Thus, it does not
pass variables into functions but objects.
The objects, however, get passed by reference.

>How can I get function parameters to be passed by reference in Python?

You can implement your own concept of variable, e.g. like this:

    class Variable(object):
      def __init__(self, value): self.value = value

The little program above then becomes:

    i = Variable(1)
    def f(x): x.value = 5

    f(i)
    i.value # this is now 5


-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to