Signature-based Function Overloading in Python

Michael Rudolf spamfresser at ch3ka.de
Tue Feb 23 13:25:24 EST 2010


Just a quick question about what would be the most pythonic approach in 
this.

In Java, Method Overloading is my best friend, but this won't work in 
Python:

 >>> def a():
	pass
 >>> def a(x):
	pass
 >>> a()
Traceback (most recent call last):
   File "<pyshell#12>", line 1, in <module>
     a()
TypeError: a() takes exactly 1 argument (0 given)

So - What would be the most pythonic way to emulate this?
Is there any better Idom than:

 >>> def a(x=None):
	if x is None:
		pass
	else:
		pass

?

Thanks,
Michael



More information about the Python-list mailing list