gpt4 book ai didi

python - 如何扩展现有的 python 实例

转载 作者:行者123 更新时间:2023-12-01 05:56:09 24 4
gpt4 key购买 nike

我正在尝试思考这里的一些事情...假设我有一个简单的类继承设置:

class SuperClass(object):
def __init__(self):
self.var = 1

class SubClass(SuperClass):
def getVar(self):
return self.var

如果我有一个 SuperClass 的现有实例,有没有办法可以将其“转换”为 SubClass,而无需创建新实例?

最佳答案

在 Python 中,您没有 cast 运算符 - 您可以通过将类型分配给实例的 __class__ 属性来解决此问题:

>>> super_instance = SuperClass()
>>> super_instance.__class__ = SubClass
>>> print super_instance.getVar()
1

但是,这比许多其他语言中的 cast 更容易出错,因为编译器不会验证“cast”的有效性和安全性。

例如,如果 SubClass 有一个方法访问了 SuperClass 上不可用的属性,则尝试在 super_instance 上调用该方法即使它看起来SubClass的有效实例,也会在运行时导致错误。

关于python - 如何扩展现有的 python 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522030/

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