it seems like you can't do it exactly the way you're trying but you could do this
def __getitem__(*args): if len(args) > 1 and args[1]: return self.get(args[0]) * 5 return self.get(args[0]) then you would use it like print foo['a'] print foo['a',True] or even print foo['a',"crazy"] if you wanted. or crazy = True print foo['a',crazy] "Andreas Matthias" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > The following code doesn't run but I hope you get what I > am trying to do. > > > class my_dict (dict): > > def __getitem__ (self, key, crazy = False): > if crazy == True: > return 5 * self.get(key) > else: > return self.get(key) > > > foo = my_dict() > foo['a'] = 123 > > print foo['a'] > print foo['a', crazy = True] > > > Is it somehow possible to overload __getitem__ with an additional > argument? Are there other possibilities to achiev this? Or is > the only solution to this to write a normal function call > `def my_get (self, key, crazy=False)'? > > > Ciao > Andreas -- http://mail.python.org/mailman/listinfo/python-list