对继承c#基类的Python类应用属性类
本文关键字:应用 属性 Python 继承 基类 | 更新日期: 2023-09-27 18:05:02
我在c#中有一个基类,就像这样
Class A
{
public ClassA()
{
}
.....
}
在python中我继承了这个基类
import clr
clr.AddReferenceToFile("MyClass.dll")
from MyNamespace import ClassA
class MySubclass(ClassA):
def _init_(self):
print "I'm in a subclass in python"
我在c#中也有一个属性类叫做MyAttrib("Value")
在我的c#代码后面的某个地方,我检查从ClassA
派生的任何类都有属性MyAttrib
应用于它,这在Python类的情况下失败。
是否有一种方法可以做到以下任何一种:
- 应用一个属性类的派生类在Python?
- 当对象被实例化时,在Python中以某种方式设置AttributeValue ?
- 其他的一些方法,我在想什么
我正在使用IronPython与Visual studio插件。
我认为没有简单的方法可以做到这一点。使用一个定义了必要属性的c#存根类和它的子类肯定更容易。
但是,如果你真的需要在python中定义一个这样的类,你可以使用一个变通方法(如下所示)
基本上你可以编译(在内存中)一段c#代码并将其导入IronPython。考虑到这是一段c#代码,你可以添加属性,因此你的问题就解决了。
这当然很复杂,因为你基本上是将一种语言嵌入到另一种语言中,形成这样的链:C# <- IronPython <- C#
,然后,再一次,我强烈建议你定义一个已经具有必要属性的c#类并使用它。