Динамическое смешивание базового класса с экземпляром в Python

Можно ли добавить базовый класс к экземпляру объекта (не классу!) В время выполнения? Что-то вроде того, как Object # extend работает в Ruby:

class Gentleman(object):
  def introduce_self(self):
    return "Hello, my name is %s" % self.name

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

p = Person("John")
# how to implement this method?
extend(p, Gentleman)
p.introduce_self() # => "Hello, my name is John"
33
задан Allan Lewis 16 August 2016 в 10:46
поделиться