嗯这里“类似”不是指和 C++ 的 reinterpret_cast
一模一样,是这个意思:
假设我有以下两个类:
class Point1(object):
def __init__(self, x, y):
(self._x, self._y) = (x, y)
def __str__(self):
return "(%d, %d)" % (x, y)
class Point2(object):
def __init__(self, y, x):
(self._x, self._y) = (x, y)
def __str__(self):
return "(%d, %d)" % (y, x)
那么是否有一个函数或运算符 reinterpret_cast
,使得若:
p = Point1(233, 2333)
pid = id(p)
pp = reinterpret_cast(p, Point2)
ppid = id(pp)
pps = str(pp)
t = type(pp)
那么 pid
和 ppid
相同,且 pps
是 '(2333, 233)'
以及 t
是 <class '__main__.Point2'>
执行结果