Great documentation on Python in general is available at 
http://www.python.org/doc/
As for IronPython specific information, you can refer to the tutorial included 
with the IronPython distribution, check out our wiki at 
http://www.codeplex.com/ironpython, specifically the page 
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython&title=More%20Information

As for your specific questions:

- conditional compilation is not part of Python language. However, Python does 
provide tools which can help you achieve something quite similar. You can 
conditionally define functions, for example:

if condition:
    def func(): return 1
else:
    def func(): return 2

print func()    # the depending on the condition, the function "func" will have 
different value and therefore do different things

- .NET attributes are not yet supported by IronPython

- properties - Python does support construct similar to .NET properties:

class C(object):
    def __init__(self): self.__value = 0

    def getter(self): return self.__value
    def setter(self, value): self.__value = value

    m = property(getter, setter)

c = C()
print c.m
c.m = 10
print c.m

If you meant using properties on .NET objects, that works also:

>>> import System
>>> System.Environment.CurrentDirectory # static property
'D:\\Ip1'

- the "is" is an operator which checks for object identity. The reason you can 
do "condition is True" is that value of a condition (if true or false) always 
returns the same _instance_ of True. Checking for object identity is faster 
than testing for equality, but not always the correct thing to do, for example:

>>> x = 123456 + 123456
>>> x
246912
>>> y = 246912
>>> x == y                      # Same value
True
>>> x is y                      # But different instance
False
>>>

- delegates: IronPython will automatically convert any Python method into a 
.NET delegate and ensures the type of the delegate matches. For example:

D:\Ip1>ipy
IronPython 1.0.2445 on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import clr
>>> clr.AddReference("System.Windows.Forms")
>>> def Click(*args): print args
...
>>> import System.Windows.Forms as Forms
>>> f = Forms.Form()
>>> f.Click += Click            # This took the Python method "Click", turned 
>>> it into
                                        # a delegate and added it as the event 
listener

- structs: You can certainly use .NET structs inside IronPython with some 
limitations, see 
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython&title=Value%20Types
 for more details. As for constructing structs, it is not possible to define a 
.NET struct in IronPython. The closest you'll probably get is using new-style 
classes (classes that have "object" in their inheritance hierarchy) with 
__slots__ (this actually allocates slots for the members as opposed to putting 
them into a dictionary. Once you define __slots__, attributes not specified 
within __slots__ are not accessible (unless one of your __slots__ is __dict__ :)

>>> class C(object):
...     __slots__ = ['a', 'b']
...
>>>
>>> c = C()
>>> c.a = 10
>>> c.b = 10
>>> c.c = 10
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'C' object has no attribute 'c'


Hope this helps
Martin

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Anton
Sent: Saturday, September 09, 2006 4:51 PM
To: users@lists.ironpython.com
Subject: [IronPython] IronPyton newbie questions


I'm new to IronPyton (and Python in general).
Where can I find a good reference or spec for IronPython?

I'd like to find information on whether the following is available in
IronPython (google has been of limited help so far in the following
searches):
- conditional compilation
- attributes (e.g., System.SerializableAttribute)
- properties
- use of "is" (for example, why is "is" used with the boolean literal
"True"?)
- defining delegates
- structs (as in C#)

Thanks
--
View this message in context: 
http://www.nabble.com/IronPyton-newbie-questions-tf2246006.html#a6229361
Sent from the IronPython forum at Nabble.com.

_______________________________________________
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

Reply via email to