On Fri, 24 Jun 2005, Roy Smith wrote: > Tom Anderson <[EMAIL PROTECTED]> wrote: > >> The one thing i really do miss is method overloading by parameter type. >> I used this all the time in java > > You do things like that in type-bondage languages
I love that expression. I think it started out as 'bondage and discipline languages', which is even better. I'm going to start referring to python as a 'sluttily typed' language. > like Java and C++ because you have to. Can you give an example of where > you miss it in Python? No. I don't generally go around keeping a list of places where i miss particular features or find particular warts irritating. Still, my medium-term memory is not completely shot, so i assume i haven't missed it much in the last couple of days! > If you want to do something different based on the type of an argument, > it's easy enough to do: > > def foo (bar): > if type(bar) == whatever: > do stuff > else: > do other stuff > > replace type() with isistance() if you prefer. Yeah, i'm well aware that this is possible - what it's not is a clean solution. If i was into writing boilerplate, i'd be using C. Also, this gets really nasty if you want to overload on multiple variables. Also, it actually falls down really badly in combination with duck typing - you can't use isinstance to ask if an object looks like a file, for example, only if it really is a file. Sure, you can do a bunch of hasattrs to see if it's got the methods it should have, but that doesn't tell you for certain it's a file, and it's a pain in the arse to write. In a typed language, you'd just ask if it implemented the Channel (for example) interface. >> No, it's not really possible in a typeless language, > > Python is not typeless. It's just that the types are bound to the > objects, not to the containers that hold the objects. No. Types are properties of variables; the property that objects have is called class. Python has classes but not types. I realise that many, even most, people, especially those using typeless languages like python or smalltalk, use the two terms interchangeably, but there's a real and meaningful distinction between them. I may be the last person alive who thinks it's an important distinction, but by god i will die thinking it. So let's recognise that we have slightly different terminologies and not argue about it! tom -- Why do we do it? - Exactly! -- http://mail.python.org/mailman/listinfo/python-list