Python 取消包装或取消继承对象

Python 取消包装或取消继承对象,python,Python,我无权访问的代码块返回一个对象,该对象是“包装”的,或者更确切地说是从基类继承的,我希望恢复该对象。包装纸是有害的,我想把它扔掉。有没有向上转换到父类的方法?打开物体?剥夺它的继承权 我准备了一个简单的例子:是否有可能操纵u对象,使其成为Person对象,并友好地打招呼 class Person(): def __init__(self, name): self.name = name def say_hello(self): print(&qu

我无权访问的代码块返回一个对象,该对象是“包装”的,或者更确切地说是从基类继承的,我希望恢复该对象。包装纸是有害的,我想把它扔掉。有没有向上转换到父类的方法?打开物体?剥夺它的继承权

我准备了一个简单的例子:是否有可能操纵
u
对象,使其成为
Person
对象,并友好地打招呼

class Person():
    def __init__(self, name):
        self.name = name

    def say_hello(self):
        print("Hi, my name is " + self.name)

class Unfriendly_Person(Person):
    def say_hello(self):
        print("Leave me alone!")

u = Unfriendly_Person("TJ")
u.say_hello()

您可以分配给
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

class Person():
    def __init__(self, name):
        self.name = name
    def say_hello(self):
        print("Hi, my name is " + self.name)

class Unfriendly_Person(Person):
    def say_hello(self):
        print("Leave me alone!")

u = Unfriendly_Person("TJ")
u.__class__ = Person
u.say_hello()
输出:

Hi, my name is TJ

但是请记住,这将抛弃
Unfriendly\u Person
中的所有方法,即使是
Person
中未定义的方法。超级令人沮丧的是,我一直在用Super关键字寻找解决方案,却没有遇到这种构造。谢谢好双关语;)这将是非常令人沮丧的,很高兴它worked@python_user,把它贴出来作为答案,也许吧?@MatBBastos,这多半是个骗局