代码之家  ›  专栏  ›  技术社区  ›  Rushabh Mehta

使用类外定义的类内函数

  •  -1
  • Rushabh Mehta  · 技术社区  · 8 年前

    我在做一个项目,我有一个类在它的 __init__ 如下所示

    class Example:
        def __init__(self, func,param1,param2):
            self.function=func
            self.param1=param1
            self.param2=param2
        def doSomething(self):
            print("hi there")
    

    显然,在创建此类的实例时,我会将函数传递给构造函数。但是,如果在这个函数中,我想引用 doSomething 和 param1 . 如果我的函数是在类外定义的,我可以访问它们吗?

    def func(self):
        self.doSomething()
        return(self.param1)
    

    如果这个函数在类定义中,这显然是可行的。在这种情况下我怎样才能使它工作?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Stop harming Monica    8 年前

    从评论来看,这就是你想要的:

    class Example:
        def __init__(self, func, param1, param2):
            self.function = lambda: func(self)
            self.param1 = param1
            self.param2 = param2
    
        def doSomething(self):
            print("hi there")
    
    
    def func(self):
        self.doSomething()
        return(self.param1)
    
    
    example = Example(func, 1, 2)
    example.function()
    

    推荐文章