Symbols as parameters?
Alf P. Steinbach
alfps at start.no
Thu Jan 21 06:57:41 EST 2010
* Stefan Behnel:
> Alf P. Steinbach, 21.01.2010 09:30:
>> * Martin Drautzburg:
>>> - to be able to call move(up)
>>> - having the "up" symbol only in the context of the function call
>>>
>>> So it should look something like this
>>>
>>> ... magic, magic ...
>>> move(up)
>>> ... unmagic, unmagic ...
>>> print up
>
> Looks like a terribly bad design to me.
That it is, in Python.
>>> This should complain that "up" is not defined during the "print" call,
>>> but not when move() is called. And of course there should be as little
>>> magic as possible.
>>>
>>> Any way to achieve this?
>>>>> def move( direction ):
>> ... print( "move " + str( direction ) )
>> ...
>>>>> move( "up" )
>> move up
>>>>> class using_directions:
>> ... up = 42
>> ... move( up )
>> ...
>> move 42
>>>>> up
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> NameError: name 'up' is not defined
>>>>> _
>> Of course it's an abuse of the language. :-)
>
> And, of course, it's totally useless as the move() function doesn't know
> about the 'up' thing in the first place.
Hm, it seems as if you thought that the example was *literally* what the OP
should do.
It was not: it just demonstrated the possibility.
Consider replacing the assignment with whatever, or alternatively, consider that
perhaps 42 is indeed the value of "up" that the move() function knows about.
Cheers & hth.,
- Alf
More information about the Python-list
mailing list