Default method arguments

Fredrik Lundh fredrik at
Tue Nov 15 23:51:18 CET 2005

Steven D'Aprano wrote:

>> Another solution to this is the use of a 'marker' object and identity test:
>> _marker = []
>> class A(object):
>>     def __init__(self, n):
>> =n
>>     def f(self, x = _marker):
>>         if x is _marker:
>>             x =
>>         print x
> I would like to see _marker put inside the class' scope. That prevents
> somebody from the outside scope easily passing _marker as an argument to
> instance.f.

if you don't want people to be able to easily pass _marker as an argument
to the f method, you probably shouldn't use it as the default value.


More information about the Python-list mailing list