Python - 将self传递给外部函数是否可以

时间:2013-04-18 13:41:23

标签: python self

我有一个类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吗?

1 个答案:

答案 0 :(得分:40)

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

在Python中,如标准库所示,self get passed to functionsand also的实例} to methodsand even operatorsall the time