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")
索引属性转换为IL
,如
FooCollection.get_Item
和FooCollection.set_Item
,所以很可能在最终的COM对象中翻译。
尝试使用这些函数调用。
希望这对你有帮助。