gpt4 book ai didi

python - 如何更改对象类和关联函数

转载 作者:行者123 更新时间:2023-12-01 02:21:39 25 4
gpt4 key购买 nike

如果我有 2 个类 A 和 B,有没有办法让 A 类的实例“跳转”到 B 类,反之亦然?

我想为 A 类编写一个函数,当调用该函数时,本质上使 A 类的实例重新初始化为 B 类对象,并像 B 类的正常实例一样继续执行。我想为 B 类做一个类似的函数。这可能吗?

最佳答案

令人惊讶的是,是的。

>>> class C: pass
...
>>> c = C()
>>> type(c)
<class '__main__.C'>
>>> c.__class__
<class '__main__.C'>
>>>
>>>
>>> class D: pass
...
>>> c.__class__ = D
>>> c.__class__
<class '__main__.D'>
>>> type(c)
<class '__main__.D'>

我使用 Python 3.6.3 来执行此操作。

想观看跳跃 Action 吗?看看这个:

>>> class C:
... def speak(self):
... return "I'm a C"
...
>>> class D:
... def shout(self):
... return "I'M A D"
...
>>> c = C()
>>> c.speak()
"I'm a C"
>>> c.__class__ = D
>>> c.shout()
"I'M A D"

Python 我们爱你,呃,我想是这样......这很奇怪。但很酷,是吗?

您自己尝试一下实验,看看如何保留原始类的属性!很整洁。

关于python - 如何更改对象类和关联函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47899321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com