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: [email protected]
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
[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