问题标签 [callable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - “列表对象不可调用”
我目前正在为 Maya 编写基于 Python 的工具。我正在使用我在其他工具的无数其他部分中使用过的代码行,由于某种原因,它这次拒绝工作。我看不出有什么理由不这样做。
运行时,Python 在object = objects[x]行上返回错误: 'list' object is not callable。这很奇怪,考虑到没有电话被打...
任何想法是什么导致了这个令人愤怒的问题?
编辑:值得注意的是,如果我运行print objects[x],它会按预期返回对象的名称......
python - 使用带有可调用对象的装饰器时返回用户定义的函数名
考虑以下代码片段。
这将返回:
该对象的bar
行为类似于一个名为 的函数,但在与装饰器一起使用时bar
会公开内部实现细节。有没有办法改变对象(也许通过将合适的参数传递给函数)所以它返回__call__
print_timing
name
__init__
? 我想要一个让print_timing
装饰器继续使用普通功能的解决方案。运行
print foo()
给
python - 定义 python tp_call 函数的确切要求是什么?
我正在将 C++ 类绑定到 Python,并为之前的问题找到了一个有趣的解决方案,不幸的是,这导致了另一个问题,似乎也没有简单的答案。
我将每个函数包装成一个“可调用”PyObject,使其可调用的是定义调用函数(C 端这是 PyTypeObject 中的 tp_call 方法)。
tp_call 似乎采用了一个三元函数,它只接受 (PyObject*, PyObject*, PyObject*) 作为其参数列表。
现在的问题是我需要这个函数来代替 PyCFunction,它只接受参数(PyObject* self,PyObject* args)。现在 python 端这可以很容易地完成,但是当我只想要一个二进制函数时,C 端似乎需要三元函数,所以无论如何让可调用函数简单地采用 PyCFunction 指针或一种封装它的方法吗?
java - 可调用对象的并行执行
我想并行执行多个可调用对象。但似乎 ExecutorService 总是等到所有可调用对象都完成。
我尝试了以下方法:
现在,当 executorService 中的所有可调用对象都完成时,将调用 for 循环。据我所知,没有 executorService.isParallel setter ;-)。
让可调用对象并行运行的正确方法是什么?
感谢您的提示!
java - java Callable FutureTask Executer:如何监听已完成的任务
我对执行服务很陌生。喜欢自己做所有事情,但我认为是时候相信这些服务了。
我想Executer
通过Runnable
. 刽子手FutureTask
把它包起来递给我。现在我调用 polldone()
方法。但是我希望在 thendone()
方法返回 true 时收到通知。
有一种get()
方法会阻塞直到Runnable
完成,但是我需要为每个作业添加一个额外的线程,以查看它何时完成。
我可以给我的执行者一些额外的东西Callable
来获得关于任务完成的通知吗?
去这里的路是什么?我可以在方法的末尾添加一些代码run
,但done()
可能仍然是错误的......
java - 如何在 call() 之前劫持 Callable 并执行隐藏方法
我正在为一个更大的项目(HypergraphDB)中的一些子系统添加实现,我应该避免修改重要的代码。在这个项目中,大约有 70 个 Callable 对象,它们为某些数据库操作定义事务块。我正在替换该数据库,而我的(redis)在定义事务块之前需要所有受影响的键。所以我需要访问这些 Callables 中的部分,并在执行 call() 之前执行一些操作(“watch”)。
一些可调用对象是非平凡的,对于其中一些,我需要在该可调用对象中声明最终字段,并将它们定义为调用的“外部”,因此 call() 和 getHandles() 都可以访问它们。
为了能够访问 getHandles 方法,我定义了一个只有 getHandles 方法的接口。要访问 getHandles,我可以暂时将 Callable 强制转换为该接口,现在在 IDE 中它“看到”该方法,但 atm 我无法测试它。
这行得通吗?
之前的代码:
之后的代码:
接口可处理:
}
最后在哪里调用它:
java - 如何从多个线程中获取信息?爪哇
我想同时启动几个可调用线程(循环中),并希望从主线程中的每个人那里返回一些信息。如何实现这一点?
java - 如何有效地处理来自 Executor Service 的多个结果
我是 ExecutorService 的新手,但不确定我的处理方法。对于一个已知任务,我最多可以处理 100 个线程。我使用下面的一般格式,在其中创建 FutureTasks 列表,然后将它们提交给 ExecutorService。ExecutorService 返回并将这些挂起的结果添加到另一个列表中。然后我遍历这个列表,在每个待处理的结果上调用 get()。
我的问题是:在所有 100 个线程都完成之前,每个 get() 上的这个块不会依次阻塞吗?有一个更好的方法吗 ?
我是否正确假设 get() 返回 Callable 实现的 call() 方法的结果?我正在使用默认的 FutureTask 类,并且没有对其进行子类化。
java - 为什么没有抛出异常?
我有这段简单的代码:
我得到了一个SQLException
方法getConnection()
。如果我放 a catch
,则在块中捕获异常,但如果没有,则不会提前抛出异常,但不会发生错误。似乎它已被锁定并且无法继续执行代码。
为什么会有这种行为?我误解了什么?这不是预期的吗?
java - 是否可以控制每个线程在 Java 中执行的时间量?
我想控制每个线程使用的时间量。
一个线程做一些处理,另一个线程处理数据库中的数据,但是由于生成的数据量大,插入比处理慢。我想给更多的处理器时间来插入该数据。
可以用线程做到这一点吗?目前,我正在处理线程中休眠,但插入时间会根据机器而变化。还有其他方法可以做到这一点吗?涉及在我的程序内部使用线程同步的方式吗?