62

我有一个类,A,它被一堆其他类继承。其中一些具有一些相似的函数,最好将这些函数定义在其他地方并由需要它们的类调用。但是这些函数调用超类中定义的函数。

class A():
    def imp_func(*args):
        # called by the child class functions

Class B(A):
    def common_func(self):
        # some stuff
        self.imp_func(*args)

所以我创建了我的辅助函数,它以self object为参数,我可以imp_func从辅助函数内部调用 。

def helper_func(obj, some_args):
    # some common stuff
    obj.imp_func(*args)

class B(A):
    def common_func(self):
        # unique stuff
        helper_func(self, some_args)

这解决了问题。

但我应该这样做吗?这是Pythonic吗?

4

1 回答 1

86

无论如何都没有问题 -self是一个像任何其他对象一样的对象,并且可以在欢迎其类型/行为的对象的任何上下文中使用。

在 Python 中,正如标准库所示例的那样,getself 实例 一直传递 函数 传递 方法甚至 运算

于 2013-04-18T13:48:02.457 回答