相关疑难解决方法(0)

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

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

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
Run Code Online (Sandbox Code Playgroud)

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

python function first-class-functions

84
推荐指数
5
解决办法
19万
查看次数

Python参数绑定器

如何将参数绑定到Python方法以存储一个用于以后调用的nullary仿函数?与C++类似boost::bind.

例如:

def add(x, y):
    return x + y

add_5 = magic_function(add, 5)
assert add_5(3) == 8
Run Code Online (Sandbox Code Playgroud)

python partial-application

60
推荐指数
5
解决办法
2万
查看次数

并行Python:什么是回调?

并行Python中,它在提交函数中有一些叫做回调(文档)的东西,但它似乎没有解释得太好.我几天前在他们的论坛上发帖,我没有收到回复.有人会解释回调是什么以及它用于什么?

谢谢.

python callback parallel-python

45
推荐指数
2
解决办法
6万
查看次数

Python NoneType对象不可调用(初学者)

我告诉我第1行和第5行(新的调试/编程,不确定是否有帮助)

def hi():     
    print 'hi'

def loop(f, n):         #f repeats n times
    if n<=0:
        return
    else:
        f()             
        loop(f, n-1)    

loop(hi(), 5)
hi
TypeError: 'NoneType' object is not callable
Run Code Online (Sandbox Code Playgroud)

为什么它会给我这个错误?

python nonetype

39
推荐指数
2
解决办法
17万
查看次数

python theading.Timer:如何将参数传递给回调?

我的代码:

    import threading

def hello(arg, kargs):
    print arg

t = threading.Timer(2, hello, "bb")
t.start()

while 1:
    pass
Run Code Online (Sandbox Code Playgroud)

打印输出只是:

b
Run Code Online (Sandbox Code Playgroud)

如何将参数传递给回调?kargs是什么意思?

python timer

28
推荐指数
2
解决办法
3万
查看次数

是不是可以从python中的函数返回任何内容?

使用一个简单的过滤器,测试0-100范围内的输入.

def foo(foo_input):
    if 0 <= foo_input <= 100:
        return f_input
Run Code Online (Sandbox Code Playgroud)

如果,则返回none foo_input is > 100.但它真的"不"会返回任何东西吗?或者功能总是必须返回一些东西?

python function

18
推荐指数
4
解决办法
4万
查看次数

调用函数的目的没有括号python

考虑以下:

class objectTest():

    def __init__(self,a):

        self.value = a

    def get_value(self):

        return self.value


class execute():

    def __init__(self):

        a = objectTest(1)
        b = objectTest(1)

        print(a == b)
        print(a.get_value() == b.get_value)
        print(a.get_value() == b.get_value())
        print(a.get_value == b.get_value)


if __name__ == '__main__':

    execute = execute();
Run Code Online (Sandbox Code Playgroud)

此代码返回

>>>
False
False
True 
False
Run Code Online (Sandbox Code Playgroud)

鉴于get_value是一个函数,我希望执行停止并返回错误,但事实并非如此.有人可以解释为什么python解释器允许这种语法而不是引发属性错误,这在我的情况下会节省我宝贵的时间.

python python-3.x

18
推荐指数
4
解决办法
2万
查看次数

线程在调用Thread.start之前开始运行

t1=threading.Thread(target=self.read())
print "something"
t2=threading.Thread(target=self.runChecks(), args=(self))
Run Code Online (Sandbox Code Playgroud)

self.read无限期地运行,所以程序将无法到达该print行.没有打电话t1.start()怎么可能呢?(即使我打电话给它,它会开始运行并继续下一行,不应该吗?)

python multithreading python-multithreading

17
推荐指数
1
解决办法
3066
查看次数

我收到类型错误。我如何解决它?

我经常从我的 Python 代码中得到未捕获的异常(错误),这些异常被描述为TypeErrors. 经过大量的实验和研究,我收集了以下示例(以及细微的变化):

TypeError: func() takes 0 positional arguments but 1 was given
TypeError: func() takes from 1 to 2 positional arguments but 3 were given
TypeError: func() got an unexpected keyword argument 'arg'
TypeError: func() missing 1 required positional argument: 'arg'
TypeError: func() missing 1 required keyword-only argument: 'arg'
TypeError: func() got multiple values for argument 'arg'
TypeError: MyClass() takes no arguments
TypeError: unsupported operand type(s) for +: 'int' and 'str'
TypeError: can only concatenate str …
Run Code Online (Sandbox Code Playgroud)

python debugging typeerror

11
推荐指数
2
解决办法
8049
查看次数

如何编写简单的回调函数?

Python 2.7.10

我编写了以下代码来测试一个简单的回调函数.

def callback(a, b):
    print('Sum = {0}'.format(a+b))

def main(callback=None):
    print('Add any two digits.')
    if callback != None:
        callback

main(callback(1, 2))
Run Code Online (Sandbox Code Playgroud)

我执行它时收到这个:

Sum = 3
Add any two digits.
Run Code Online (Sandbox Code Playgroud)

为什么Add any two digits之后Sum = 3呢?我想这是因为回调函数首先执行.执行完所有其他代码后如何执行回调函数main()

python callback

10
推荐指数
3
解决办法
3万
查看次数