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