For kwargs you need to decorate the function w/ a ParamDictionary attribute 
such as:

public void __init__(CodeContext/*!*/ context, object o, [ParamDictionary] 
IAttributesCollection kwArgs)

For __getattr__ IronPython will recognize a special name "GetBoundMember" 
method such as:

using System;
using System.Runtime.CompilerServices;

public class Foo {
    [SpecialName]
    public object GetBoundMember (string name) {
        return name;
    }
}


You can also do "GetCustomMember" which is like __getattribute__.  But for this 
one what you really want to do is inherit directly from the DynamicObject class 
and override TryGetMember.  Then it'll work not only w/ Python but w/ other DLR 
based languages as well (e.g. C#, VB.NET, IronRuby, etc...).


> -----Original Message-----
> From: [email protected] [mailto:users-
> [email protected]] On Behalf Of Alex News
> Sent: Tuesday, April 14, 2009 7:32 AM
> To: [email protected]
> Subject: [IronPython] **kwargs and __getattr__ handling in csharp
> functions and classes?
> 
> I would like to write some functions and classes in csharp that
> interact nicely python.  I would like to write a function that can
> respond to keyword arguments, and a class that can dynamically resolve
> __getattr__.
> 
> For the function I tried creating a function that takes a
> IronPython.Runtime.PythonDictionary, but did not work.  For a class I
> tried creating a function that have a method __getattr__, but that
> failed too.
> 
> I see there is a IronPython.Runtime.PythonFunction and some other
> interesting classes in the Runtime, but it is not apparent exactly how
> I could use them.
> 
> I can, luckily, fudge much of what I want to do by creating small
> python classes and functions in python to proxy the values to
> underlying csharp classes.  However thing would be cleaner if I could
> do it directly in csharp.
> 
> Thanks in advance for any suggestions.
> 
> Alex
> _______________________________________________
> 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

Reply via email to