IronPython 创建泛型 class
IronPython create generic class
可以在 IronPython 中创建通用 class 吗?我想继承通用 c# class 并在顶部实现自定义 IronPython class。
例如:
public class A<T>
{
}
第一个 IronPython class:
class B[T](A[T]): # Problematic part. I don't know how to create a
# generic ironpython class
第二个 IronPython class:
class C(B[object]):
所以在第一个 IronPython 中就是问题所在。我现在不热衷于创建一个泛型 class 来传递类型。这可能吗?
编辑
我不只是想使用通用的 c# classes。我想在 IronPython 中实现我自己的并从 c# class.
继承
EDIT2
我想要实现的是 class A
,它有一个 python 基础 class B
,它应该有一个通用的 C# 基础class C
。 python baseclass B
与 C# baseclass C
的类型无关(它只是通用 C# class 的特化) ), 但它必须初始化正确的 C# 基础 class.
谢谢!
(Iron)Python是动态类型语言,python中没有泛型classes的概念。您可以派生自泛型 .NET class,但您实际上无法创建泛型 python class,没有这样的东西。
不过,您可以使用一些装饰器来模仿语法。
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
的实际实现是示例中的 class _B
。
可以在 IronPython 中创建通用 class 吗?我想继承通用 c# class 并在顶部实现自定义 IronPython class。
例如:
public class A<T>
{
}
第一个 IronPython class:
class B[T](A[T]): # Problematic part. I don't know how to create a
# generic ironpython class
第二个 IronPython class:
class C(B[object]):
所以在第一个 IronPython 中就是问题所在。我现在不热衷于创建一个泛型 class 来传递类型。这可能吗?
编辑
我不只是想使用通用的 c# classes。我想在 IronPython 中实现我自己的并从 c# class.
继承EDIT2
我想要实现的是 class A
,它有一个 python 基础 class B
,它应该有一个通用的 C# 基础class C
。 python baseclass B
与 C# baseclass C
的类型无关(它只是通用 C# class 的特化) ), 但它必须初始化正确的 C# 基础 class.
谢谢!
(Iron)Python是动态类型语言,python中没有泛型classes的概念。您可以派生自泛型 .NET class,但您实际上无法创建泛型 python class,没有这样的东西。
不过,您可以使用一些装饰器来模仿语法。
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
的实际实现是示例中的 class _B
。