在C++中,
template<typename T,...>
vector{...};
如果我們寫
vector<int> vec;
則T=int。
在python中有類似的用法。
from typing import TypeVar
T=TypeVar('T');
class A(object):
def __init__(self):
print("A");
class B(object):
def __init__(self):
print("B");
class C(object):
def __init__(self,T):
T();
if __name__=='__main__':
C(A);
C(B);
做法是從typing中引入TypeVar,并且将T定義為TypeVar。TypeVar的意思就是類型變量。一般的變量,如整型變量a=int(1),它接受的就是相應的整型,如1,2,...。類型變量接受的就是類型,如int,char,...等。是以我們給C傳入A類型時,T代表的就是一個A類型,T()則生成A類型的對象,C(B)同理。