我有一个Animal类,我希望它有一个允许访问一组特定函数的属性。
class Animal(object):
def __init__(self, age):
self.age = age
rex = Animal()
rex.actions.bark()
rex.actions.say_age()
我尝试创建一个Actions类并将其用作具有多重继承的mixin,但这只允许我这样做:
rex.say_age()
这不是我想要的。
我还尝试创建一个充满静态方法并使用它们的Actions类,但这迫使我将Animal的属性传递给方法。
我知道pandas实现了这个(Series.str就是一个例子),但它看起来需要大量的专有开销
有没有pythonic的方法来做到这一点?
答案 0 :(得分:3)
只需创建另一个在构造函数中使用Animal
的类。
class AnimalActions(object):
def __init__(self, animal):
self.animal = animal
class Animal(object):
def __init__(self, age):
self.age = age
self.actions = AnimalActions(self)