是否可以将方法作为参数传递给方法?
self.method2(self.method1) def method1(self): return 'hello world' def method2(self, methodToRun): result = methodToRun.call() return result
David Z.. 235
是的,只需使用方法的名称,就像你写的那样.方法/函数是Python中的对象,就像其他任何东西一样,你可以将它们传递给你做变量的方式.实际上,您可以将方法(或函数)视为一个变量,其值是实际的可调用代码对象.
仅供参考,没有call
方法 - 我认为它已被调用__call__
,但您不必明确调用它:
def method1(): return 'hello world' def method2(methodToRun): result = methodToRun() return result method2(method1)
@David Z如何在方法1中传递参数? (2认同)
小智.. 34
对的,这是可能的.只需称呼它:
class Foo(object): def method1(self): pass def method2(self, method): return method() foo = Foo() foo.method2(foo.method1)
Trent.. 12
以下是您重写的示例,以显示一个独立的工作示例:
class Test: def method1(self): return 'hello world' def method2(self, methodToRun): result = methodToRun() return result def method3(self): return self.method2(self.method1) test = Test() print test.method3()
lt_kije.. 5
是; 函数(和方法)是Python中的第一类对象.以下作品:
def foo(f): print "Running parameter f()." f() def bar(): print "In bar()." foo(bar)
输出:
Running parameter f(). In bar().
使用Python解释器或者对于更多功能,使用IPython shell 来回答这些问题是微不足道的.
是的,只需使用方法的名称,就像你写的那样.方法/函数是Python中的对象,就像其他任何东西一样,你可以将它们传递给你做变量的方式.实际上,您可以将方法(或函数)视为一个变量,其值是实际的可调用代码对象.
仅供参考,没有call
方法 - 我认为它已被调用__call__
,但您不必明确调用它:
def method1(): return 'hello world' def method2(methodToRun): result = methodToRun() return result method2(method1)
对的,这是可能的.只需称呼它:
class Foo(object): def method1(self): pass def method2(self, method): return method() foo = Foo() foo.method2(foo.method1)
以下是您重写的示例,以显示一个独立的工作示例:
class Test: def method1(self): return 'hello world' def method2(self, methodToRun): result = methodToRun() return result def method3(self): return self.method2(self.method1) test = Test() print test.method3()
是; 函数(和方法)是Python中的第一类对象.以下作品:
def foo(f): print "Running parameter f()." f() def bar(): print "In bar()." foo(bar)
输出:
Running parameter f(). In bar().
使用Python解释器或者对于更多功能,使用IPython shell 来回答这些问题是微不足道的.