首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python -将一个函数传递给另一个函数

Python -将一个函数传递给另一个函数
EN

Stack Overflow用户
提问于 2009-08-28 21:01:20
回答 5查看 229.5K关注 0票数 101

我正在使用python解决一个难题,根据我要解决的难题,我必须使用一组特殊的规则。如何在Python中将一个函数传递给另一个函数?

示例

代码语言:javascript
复制
def Game(listA, listB, rules):
   if rules == True:
      do...
   else:
      do...

def Rule1(v):
  if "variable_name1" in v:
      return False
  elif "variable_name2" in v:
      return False
  else:
      return True

def Rule2(v):
  if "variable_name3" and "variable_name4" in v:
      return False
  elif "variable_name4" and variable_name1 in v:
      return False
  else:
      return True

这只是一个伪代码,因此不是特定的,但我得到了要编译的代码,但我需要知道如何调用函数Game,以及它是否被正确定义,因为规则将针对Rule1(v)Rule2(v)进行切换。

EN

回答 5

Stack Overflow用户

发布于 2009-08-28 21:04:04

只需像传递其他参数一样传递它:

代码语言:javascript
复制
def a(x):
    return "a(%s)" % (x,)

def b(f,x):
    return f(x)

print b(a,10)
票数 161
EN

Stack Overflow用户

发布于 2009-08-28 21:06:29

在你的程序中把函数当作变量,这样你就可以很容易地把它们传递给其他函数:

代码语言:javascript
复制
def test ():
   print "test was invoked"

def invoker(func):
   func()

invoker(test)  # prints test was invoked
票数 26
EN

Stack Overflow用户

发布于 2016-02-18 04:31:58

用于将函数和任何参数传递给该函数:

代码语言:javascript
复制
from typing import Callable    

def looper(fn: Callable, n:int, *args, **kwargs):
    """
    Call a function `n` times

    Parameters
    ----------
    fn: Callable
        Function to be called.
    n: int
        Number of times to call `func`.
    *args
        Positional arguments to be passed to `func`.
    **kwargs
        Keyword arguments to be passed to `func`.

    Example
    -------
    >>> def foo(a:Union[float, int], b:Union[float, int]):
    ...    '''The function to pass'''
    ...    print(a+b)
    >>> looper(foo, 3, 2, b=4)
    6
    6
    6       
    """
    for i in range(n):
        fn(*args, **kwargs)

根据您正在做的事情,定义一个decorator或使用functools.partial可能是有意义的。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1349332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档