Can global variable be passed into Python function?
steve+comp.lang.python at pearwood.info
Sat Feb 22 07:57:24 CET 2014
On Fri, 21 Feb 2014 21:20:12 +0200, Marko Rauhamaa wrote:
> On the question of how variables can be passed to functions, C, of
> course, has the & operator and Pascal has the "var" keyword.
> An analogous thing can be achieved in Python 3 (but not in Python 2, I'm
> afraid). The & operator corresponds to an ad hoc property class as in
> the program below (not intended to be serious).
I'm glad you added that comment about not being serious. But even so,
your code is extremely unPythonic and doesn't even succeed in doing what
you try to accomplish:
> The program demonstrates how to write a universal "swap" function that
> interchanges two references.
For the record, there is no need for such a universal swap function in
Python, as the right way to do it is:
x, y = y, x
But your code doesn't succeed at doing what it sets out to do. If you try
to call it like this:
py> x = 23
py> y = 42
py> swap(x, y)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in swap
AttributeError: 'int' object has no attribute 'get'
not only doesn't it swap the two variables, but it raises an exception.
Far from being a universal swap, it's merely an obfuscated function to
swap a few hard-coded local variables.
More information about the Python-list