Hi, I suspect it's not something anyone's likely to come across often, but if you try to rebind a method on a built-in class, no exception will be thrown but it will not be changed. An example:
You can rebind methods on regular classes easily: --- >>> class C: ... def m(self): ... return 2 ... >>> c = C() >>> c.m() 2 >>> def n(): ... return 3 ... >>> c.m = n >>> c.m() 3 --- However, when you try to do this with a CLR class there's no warning, but it doesn't work: --- >>> f = Form() >>> f.ToString() 'System.Windows.Forms.Form, Text: ' >>> def newToString(): ... return "Hello, world!" ... >>> f.ToString = newToString >>> f.ToString() 'System.Windows.Forms.Form, Text: ' >>> f.ToString == newToString False --- The behaviour when you try to set arbitrary attributes on the built-in classes is nicer, I think: --- >>> f.foobar = 23 Traceback (most recent call last): at <shell> TypeError: can't set arbitrary attributes on built-in type System.Windows.Forms.Form --- I've confirmed this in the beta and in 0.9.5 (I hasten to add that I'm not recommending rebinding methods as standard practive...) Cheers, Giles -- Giles Thomas Resolver Systems [EMAIL PROTECTED] We're hiring! http://www.resolversystems.com/jobs/ _______________________________________________ users mailing list users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com