当前位置:  开发笔记 > 编程语言 > 正文

如何在Python中将方法作为参数传递

如何解决《如何在Python中将方法作为参数传递》经验,为你挑选了4个好方法。

是否可以将方法作为参数传递给方法?

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 来回答这些问题是微不足道的.



1> David Z..:

是的,只需使用方法的名称,就像你写的那样.方法/函数是Python中的对象,就像其他任何东西一样,你可以将它们传递给你做变量的方式.实际上,您可以将方法(或函数)视为一个变量,其值是实际的可调用代码对象.

仅供参考,没有call方法 - 我认为它已被调用__call__,但您不必明确调用它:

def method1():
    return 'hello world'

def method2(methodToRun):
    result = methodToRun()
    return result

method2(method1)


@David Z如何在方法1中传递参数?

2> 小智..:

对的,这是可能的.只需称呼它:

class Foo(object):
    def method1(self):
        pass
    def method2(self, method):
        return method()

foo = Foo()
foo.method2(foo.method1)



3> Trent..:

以下是您重写的示例,以显示一个独立的工作示例:

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()



4> lt_kije..:

是; 函数(和方法)是Python中的第一类对象.以下作品:

def foo(f):
    print "Running parameter f()."
    f()

def bar():
    print "In bar()."

foo(bar)

输出:

Running parameter f().
In bar().

使用Python解释器或者对于更多功能,使用IPython shell 来回答这些问题是微不足道的.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有