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#基类。
谢谢!
(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
类。