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,这多半是个骗局