How to call a method with variing arguments

Roman Suzi rnd at onego.ru
Tue Jul 3 09:05:17 CEST 2001


On 2 Jul 2001, Heiko wrote:

> Hello,
> I want to do this:
> 
> ClassObject = Class()
> ClassObject.Method(Arg1, Arg2, Arg3)
> ...
> ClassObject.Method(Arg1, Arg2, Arg3, Arg4, Arg5 ....)
> ...
> ClassObject.Method()
> ...
> and so on.
> 
> Means that I want to call a method with a variing number of arguments
> and the method decides what to do.
> If possible, it would be nice, if the sequence of the arguments
> doesn╢t matter, and the method realizes which argument is on which
> position (but that is a "nice to have"). So, how do I have to declare
> the method, that this works?

example:

class Class:
  def Method(self, Arg1="default", Arg2="def2", Arg3=None):
    Arg3 = Arg3 or []
    print Arg1, Arg2, Arg3
    
class_object = Class()
class_object.Method(Arg3=[1,2,3])
class_object.Method("a", "b", [2,3,4])

...

Works like this:

>>> class Class:
...   def Method(self, Arg1="default", Arg2="def2", Arg3=None):
...     Arg3 = Arg3 or []
...     print Arg1, Arg2, Arg3
...
>>> class_object = Class()
>>> class_object.Method(Arg3=[1,2,3])
default def2 [1, 2, 3]
>>> class_object.Method("a", "b", [2,3,4])
a b [2, 3, 4]
>>>


> Thanks
> Heiko
> 

Sincerely yours, Roman A.Suzi
-- 
 - Petrozavodsk - Karelia - Russia - mailto:rnd at onego.ru -
 





More information about the Python-list mailing list