[IronPython] No ToString?

Curt Hagenlocher curt at hagenlocher.org
Mon May 5 14:35:30 CEST 2008


This is a function of whether or not you've imported "clr" into the module.
Until you import clr, int objects will only have the methods of a Python
int.

PS f:\IronPython-2.0B2> .\ipy.exe
IronPython 2.0 Beta (2.0.0.2000) on .NET 2.0.50727.1434
Copyright (c) Microsoft Corporation. All rights reserved.
>>> a = 42
>>> len(dir(a))
54
>>> import clr
>>> len(dir(a))
65
>>>

This is a property of the current module and not of the objects that you've
passed to it.  If "x.py" contains "def n(x): return len(dir(x))" and "y.py"
contains "import clr" followed by the same function, you get the following
output from using them:

PS f:\IronPython-2.0B2> .\ipy.exe
IronPython 2.0 Beta (2.0.0.2000) on .NET 2.0.50727.1434
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import x, y
>>> a = 42
>>> y.n(a)
65
>>> x.n(a)
54
>>>

So the solution is for you to add an "import clr" at the top of the module
where you're trying to use "ToString".

On Mon, May 5, 2008 at 3:58 AM, Dan Eloff <dan.eloff at gmail.com> wrote:

> A dictionary has an integer value, it goes into third party code, at
> which point the dictionary very likely goes through some kind of copy
> so that modifications to it will not affect the original.
>
> Before going into thrid party code, d[key].ToString() works, but on
> the copied dictionary, newd[key].ToString() raises:
>
> AttributeError: 'int' object has no attribute 'ToString'
>
> So I'm curious now, how can that happen? Before and after it seems the
> value is <type 'int'>. How does int get .ToString() in the first
> place, and why does it seem to be possible to lose it?
>
> Thanks,
> -Dan
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080505/653eb978/attachment.html>


More information about the Ironpython-users mailing list