Python 对象如何转换为类对象?
对象如何转换为类对象?例如:Python 对象如何转换为类对象?,python,python-internals,Python,Python Internals,对象如何转换为类对象?例如: >>> object <type 'object'> >>> class NewClass: ... pass 要将该对象转换为NewClass,需要在解释器中执行哪些操作?或者没有类语法是不可能的?一般来说,不能简单地将一个类的对象转换成另一个类;默认情况下,它们是不兼容的类型。而是为旧类编写一个转换方法,返回新类的所需对象。例如 class new_obj: def __init__(self,
>>> object
<type 'object'>
>>> class NewClass:
... pass
要将该对象转换为NewClass,需要在解释器中执行哪些操作?或者没有类语法是不可能的?一般来说,不能简单地将一个类的对象转换成另一个类;默认情况下,它们是不兼容的类型。而是为旧类编写一个转换方法,返回新类的所需对象。例如
class new_obj:
def __init__(self, value=13):
self.value = value
class old_obj:
def __init__(self, value=7):
self.value = value
def to_new(self):
return new_obj(value * value)
您的转换顺序将是
old_thing = old_obj(5)
new_thing = old_thing.to_new()
你认为对象在哪里转换成类对象?我不明白你在这个问题上的意思。@juanpa.arrivillaga我认为创建一个类和创建一个类NewClassobject:是一样的,它从对象类型转换而来。类对象是使用元类创建的,元类是类的一个类。除非您特别选择一个备用类型,否则它将是类型,并且您可以使用类型的三参数形式动态创建类。因此,NewClass=typeNewClass,object,{}将与您的类定义等效。注意,类不是从基类创建的。大卫542读了一些关于课程创建过程中发生的事情的好文章:我不认为这是OP所要求的,但它不是非常清楚。
old_thing = old_obj(5)
new_thing = old_thing.to_new()