>> Without making any change whatsoever to multi() and multi_method(), > the result of the following code : > > # Declare the existence of a multi method switcher > encounter = multi(lambda x,y : (x["Species"], y["Species"])) > > @multi_method(encounter, ("Bunny","Lion")) > def encounter(a1, a2): > return "run-away" > > @multi_method(encounter, ("Lion","Bunny")) > def encounter(a1, a2): > return "eat" > > @multi_method(encounter, ("Bunny","Bunny")) > def encounter(a1, a2): > return "mate" > > @multi_method(encounter, ("Lion","Lion")) > def encounter(a1, a2): > return "fight" > > b1 = {"Species" : "Bunny", "Other" : "Stuff"} > b2 = {"Species" : "Bunny", "Other" : "Stuff"} > l1 = {"Species" : "Lion", "Other" : "Stuff"} > l2 = {"Species" : "Lion", "Other" : "Stuff"} > > print encounter(b1, b2) > print encounter(b1, l1) > print encounter(l1, b1) > print encounter(l1, l2) > > *is > * > mate > run-away > eat > fight > > Is that consistent with the expectations ?
Fair enough. Good work, Dhananjay. Regards, BG -- Baishampayan Ghose b.ghose at gmail.com _______________________________________________ BangPypers mailing list BangPypers@python.org http://mail.python.org/mailman/listinfo/bangpypers