Carolyn Johnston (MSNAR) wrote:
You are trying to apply C++ and C# thinking to Python.  This is a
fundamental philosophical difference between the languages.  Python
doesn't care what the object IS.  Python only cares what it EXPOSES.  If
it has a GetName() method, you can call it, no matter what the object
ancestry was. -- tim

Well, C++ was my first language -- but I am a huge fan of Python and 
IronPython. Since I've dived into the deep end philosophically, I may as well 
push it a bit further.

One of the most useful aspects of IronPython for me is the way that I can use IronPython as a loosely typed test environment for .NET classes that I've built in C#. Suppose I have a class B which is a subclass of A, which both define a function f(x). Suppose I have an object of class B on which (for some purely hypothetical reason) I want to run A.f(x) rather than B.f(x).

Actually the example pattern is pretty much how you do it.

Suppose you have an object 'a', which is an instance of a class that inherits from (or implements) both A and B.

You can explicitly call the A version using:

A.f(a, x)

Or the B version:

B.f(a, x)

As you are calling the unbound method (on the class or interface), you pass in the instance as the first argument.

Michael

This is clearly at the interface of .NET design and Pythonian antiObjectian 
philosophy. Here's my question: is it doable within IronPython, or is it not? 
And if so, how?


Thanks,
:) Carolyn

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


--
http://www.ironpythoninaction.com/

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to