Python将属性视为函数

本文关键字:函数 属性 Python | 更新日期: 2023-09-27 18:09:45

我有一个用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作为COM。

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

Python将属性视为函数

索引属性转换为IL,如

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

尝试使用这些函数调用。

希望这对你有帮助。