Dino Viehland wrote:
You'll want to implement the ICodeFormattable interface. It looks
like we don't pick up a method that's just named __repr__ right now.
I could see us fixing that but I wouldn't think it's a high priority
unless someone finds implementing ICodeFormattable burdensome.
Thanks, that did the trick (sample attached below)! It isn't burdensome,
but I wonder about what will happen when we use IronRuby, too? We'll we
need repr methods for each language?
I also wonder if things like a generic list couldn't pick up a
reasonable default __repr__ for use in all DLR languages.
We're using the .NET languages in an educational environment for new
students. Currently, we're going to have to add the __repr__ to all
classes, and add subclasses to all types for which there isn't a
reasonable repr default. For example, there is a pretty big difference
between: "[255, 255, 128]" and "<List<GraphicsCore+Pixel> object at
0x000002C [List<GraphicsCore+Pixel>]>" or whatever it might be.
In any event, we have a work around now; thanks again!
-Doug
using System;
using IronPython.Runtime; // for ICodeFormattable
using Microsoft.Scripting.Runtime; // for CodeContext
public class TestMe : ICodeFormattable {
public virtual string __repr__(CodeContext context) {
return String.Format("<Hi Mom>");
}
}
-----Original Message----- From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Douglas S.
Blank Sent: Wednesday, May 28, 2008 12:22 PM To: Discussion of
IronPython Subject: Re: [IronPython] What C# methods do __repr__ and
__str__ use?
Anyone have an answer for this: I can't write C# code that has its
own method for use in repr(). Am I missing something?
-Doug
Douglas S. Blank wrote:
On Fri, May 23, 2008 3:37 pm, Toni Alatalo said:
Douglas S. Blank kirjoitti:
will use it? Likewise, what C# method is used in Python's
str(obj)?
i don't know, but would guess ToString() .. and wonder about it
if it wasn't that but something else :o repr() can't guess, i
don't think there's an equivalent in .net, but can very well be
mistaken there.
It looks like the C# method __str__ is used for the Python method,
but in IP2B2 the C# method __repr__ is getting overwritten by an
auto generated method. Is that a bug, or is there something I'm
missing?
$ ipy2 -i python/graphics.py
pm = Pixmap() pm.getPixel(0,0) # What is
this calling?
<Pixel object at 0x2B>
pm.getPixel(0,0).__repr__() # This is repr() too
'<GraphicsCore+Pixel object at 0x2C [GraphicsCore+Pixel]>'
pm.getPixel(0,0).__Repr__() # This is mine
'<Pixel at (0,0)>'
pm.getPixel(0,0).__str__() # That is mine, and str()
'<Pixel at (0,0)>'
pm.getPixel(0,0).ToString() # Used by __repr__
'GraphicsCore+Pixel'
-Doug
-Doug
~Toni
_______________________________________________ Users mailing
list [email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________ Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________ Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com