Python将属性视为函数

时间:2013-04-18 11:27:44

标签: c# com python-2.7

我有一个用C#编写的库,它就像这样

class FooCollection
    {
        private readonly FooBase _innerFoo;
        public FooCollection()
        {
            _innerFoo = new FooBase();
        }

        public string this[int index]
        {
            get { return _innerFoo._components[index].ComponentName; }
            set
            {
                _innerFoo._components[index].ComponentName = value;
            }
        }
    }

这个类是COM可见的,我试图从Python中使用它。 所以,这个命令工作

foo(1)

但是这个没有

foo(1) = 'SomeName'

它让我无法分配呼叫功能"。我尝试过方括号[],但这并不好。 有没有办法绕过这个,除了我做了额外的'正常'在C#中设置此属性的方法?

我在Python中使用pywin32-218 for COM。

foo = win32com.client.Dispatch("Foo")

1 个答案:

答案 0 :(得分:1)

索引属性转换为IL,如

FooCollection.get_ItemFooCollection.set_Item,可能在最终的COM对象中 翻译过。

尝试使用这些函数调用。

希望这会有所帮助。