IronPython创建泛型类

本文关键字:泛型类 创建 IronPython | 更新日期: 2023-09-27 18:18:16

是否可以在IronPython中创建一个泛型类?我想继承一个通用的c#类,并在上面实现一个自定义的IronPython类。

例如:

public class A<T>
{
}
第一个IronPython类:
class B[T](A[T]): # Problematic part. I don't know how to create a
                  # generic ironpython class

第二个IronPython类:

class C(B[object]): 

第一个IronPython就是问题所在。我现在不需要创建一个泛型类来传递类型。这可能吗?

编辑

我不想只使用通用的c#类。我想在IronPython中实现我自己的,并从c#类继承。

EDIT2

我想实现的是一个类A,它有一个python基类B,它应该有一个通用的c#基类C。python基类B独立于c#基类C的类型(它只是通用c#类的专门化),但它必须初始化正确的c#基类。

谢谢!

IronPython创建泛型类

(Iron)Python是一种动态类型语言,在Python中没有泛型类的概念。你可以从一个泛型的。net类派生,但是你不能真正创建一个泛型的python类,没有这样的事情。

你可以使用一些修饰符来模仿语法。

class B(object):
    class _Meta(type):
        def __getitem__(cls, t):
            from System.Collections.Generic import List as A # just an example
            class _B(A[t]):
                pass
            return _B
    __metaclass__ = _Meta
class C(B[object]):
    pass

B的实际实现是示例中的_B类。