1

好的,只是想进入 Python,具体来说,我正在使用调用 IronPython 引擎的 C# 应用程序中的即时计算的好处。我将 C 类的 C# 对象列表传递给 IP,然后进行大量计算。对类的某个成员有一个遗留 (SQL) 引用,称为 CURRENTAMOUNT。还有其他属性值将在计算中引用,但我想知道是否有一种方法可以在仅引用对象的情况下自动返回 CURRENTAMOUNT 的值。

C# 类 MyNumbersClass

public class MyNumbersClass
{
   decimal SomeVal_A;
   decimal SomeVal_B;
   decimal CurrentAmount;
}

...收集一个名为 NumbersList 的列表...

... 实例化 IronPython 引擎 E ... 设置范围 S ... 将 IP 列表 PNumbers 设置为 C# 列表 NumbersList

S.SetVariable(PNumbers, NumbersList)

所以现在,IronPython(IP) 中的一个简单计算是计算以下内容:

PNumbers[10].CurrentAmount = PNumbers[0].SomeVal_A * (PNumbers[2].SomeVal_B / DaysInWeek) - PNumbers[5].CurrentAmount

我怎样才能重写它,以便 CurrentAmount 是在未指定时设置和获取的默认属性?即,PNumbers[10] = PNumbers[0].SomeVal_A * (PNumbers[2].SomeVal_B / DaysInWeek) - PNumbers[5]

我对示例进行了过度简化,因为我只能说传入的 C# 类的现有遗留属性非常长且冗长,并且 CurrentAmount 是默认属性集和/或引用,它的大小是常用属性的旧名称。

当我输入这个时,我意识到我所问的内容可能会产生意想不到的后果 - 即,当我真的只想引用整个类的对象时。

有任何想法吗?

4

1 回答 1

0

如果您总是在处理项目列表,您可以在 C# 中创建一个包装列表并实现__getitem____setitem__(基本上重载[]运算符)的类来引用CurrentAmmount. 您将失去从 Python 中完全替换该列表中的元素的能力,但这在您的情况下可能无关紧要。

于 2013-05-14T15:25:44.027 回答