问题标签 [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 - 如何解决 Python TypeError:“模块”对象不可调用?
我正在尝试编写一组 Python 类,这些类将查询数据库以检索一些值,然后构造一个网络图。问题是每当我尝试为我的一个类调用构造函数时都会收到此错误相关代码如下
QueryService 类的相关位是
我也导入了所有必需的库
django - 如何使 str var 可调用
我想要的是使字符串 var 可调用。我只有一个包含不同模型名称的列表,我想像这样调用他们的创建方法。
可以像这样使用 php 进行开发:
任何人都知道这是否可以使用 django ?这将大大简化我的代码。
非常感谢!
recursion - 如何在递归方法中使用 Future 和 Callable?
我正在尝试使用 Future 和 Callable 将 dfs 递归方法转换为并行以提高效率。但不知道如何正确地做到这一点。这是代码:
我期望做的是递归方法将继续计算而不等待task.get()的返回值。因此,每当它进入深度 3 时,它都会提交一个未来任务,然后返回计算另一个子树,同时该任务将计算自己的子树。
但是,我发现这个方法仍然是顺序的,而不是并行的。(我每次调用方法时都打印出深度,结果和没有使用future和executor的方法一样,而且总是比较慢。)
我相信这不是使用 Future 和 Callable 的正确方法,我找到了一些示例,但它们没有使用递归方法。最常见的例子是有一个 Future List> 的列表,并且每次提交一个任务,然后在另一个循环中迭代 Future 列表。
有谁知道如何以递归方法实现 Future 和 Executor ?
coding-style - 您是否使用代表可调用对象的类名的名词?
这里有一个更通用的问题。将此视为对此的扩展。
我知道类代表对象的类型,我们应该使用名词作为它们的名称。但是许多语言支持的函数对象更像函数而不是对象。我应该将这些类也命名为名词,还是在这种情况下可以使用动词。doSomething()
,从语义上讲,比 更有意义Something()
。
更新/结论
我得到的两个投票最多的答案意见不一:
阿提拉
然而,在函子的情况下,它们代表“动作”,因此用动词(或某种名词-动词组合)命名它们更合适——就像根据函数的作用命名函数一样。
车
另一方面,仿函数的实例实际上是一个函数,因此可能会更好地命名。按照上面吉姆的建议,
SomethingDoer doSomething; doSomething();
他们两个,在经历了一些代码之后,似乎是常见的做法。在 stl 的 GNU 实现中,我发现了negate
, plus
, minus
(bits/stl_function.h) 等类以及variate_generator
, mersenne_twister
(tr1/random.h)。同样,在 boost 中,我发现了base_visitor
, predecessor_recorder
(graph/visitors.hpp) 和inverse
, inplace_erase
(icl/functors.hpp) 之类的类
python - 将可调用对象隐式绑定到实例
我有这个代码:
而且我明确希望它像任何其他用户定义的函数一样LFSeq.__iter__
绑定到一个实例。LFSeq
但它不能以这种方式工作,因为只有用户定义的函数是有界的,而不是类。
当我介绍一个函数装饰器时
然后我可以__iter__
用它装饰它并且它可以工作:
然而,这感觉有点hacky和不一致。还有其他方法吗?应该是这样吗?
我猜是的,否则LFSeq.__iter__
就LFSeq(None).__iter__
不再是同一个对象(即类对象)。也许关于有界函数的全部内容应该是语法糖,而不是在运行时。但是另一方面,语法糖不应该真正依赖于内容。我想必须在某个地方进行一些权衡。
python - 为什么在使用 sum() 函数时会出现 'int' object is not callable 错误?
我试图弄清楚为什么在范围上使用 sum 函数时会出错。
这是代码:
这是错误:
我发现了这个错误的解释:
在 Python 中,“可调用”通常是一个函数。该消息意味着您将数字(一个>“int”)视为一个函数(一个“可调用”),因此Python不知道该做什么,所以它>停止。
我还读到 sum() 能够用于列表,所以我想知道这里出了什么问题?
我刚刚在 IDLE 模块中尝试过,效果很好。但是,它在 python 解释器中不起作用。关于如何做到这一点的任何想法?
function - JDBC Postgres 存储函数调用返回 setof 'myType'
我正在尝试保护我的数据库免受 SQL 注入。我有许多返回 SETOF 我预定义数据类型的存储函数。例如:
我现在想从我的 Java 前端调用这些存储过程。根据我的阅读,就 SQL 注入而言,使用 CallableStatement 更安全。这是我迄今为止所拥有的:
如果我尝试使用 execute() 方法,它会要求我将 ResultSet rs 设置为布尔值。如果按原样运行 (executeQuery()),则在 ResultSet 中只能看到 returnType 的第一个字段 (userId)。
如果我这样调用存储过程:
我得到正确的数据。
此外,如果有任何进一步的提示可以保护我的数据库免受 SQL 注入,请指出。我已经创建了应用程序将使用的特定 Postgres 角色,并实现了一个 ConnectionPool (c3p0) 来连接到我的数据库 - 应用程序将在本地网络上运行。我正在验证来自不同 Java Swing 组件的用户输入,以避免 SQL 注入攻击(注释 --、分号、* 和其他 SQL 命令,如 DELETE)。
任何意见都将受到欢迎。
谢谢。
java - Jython:pythonic 等效于 java.util.concurrent.Callable?
我将一个简单的pythonic队列与一个pythonic Thread子类结合使用......
...所以你提交的是一个列表,其中的第一项是一个方法,可选的其他元素是你可能想要提供给该方法的任何参数。NB 不能在 Java 中做这种有趣的事情!
问题是:是否有一个简单的 Pythonic 方法从被调用的方法中返回一个值?在 Java 中,显然您可以使用 Callable 和 Future 接口。并且使用更多这样的 Java 类,我可以看到如何更改代码……我想确实有几种可能性。但我只是想知道 Python 是否有任何处理“未来”类型情况的规定?
顺便说一句,我查看了权威指南http://www.jython.org/jythonbook/en/1.0/Concurrency.html - 但这似乎没有提供任何非 Java 解决方案
之后:
任何有兴趣的人,这是我面向 Java 的解决方案:
典型输出:
线程 20 - 等待 Future.get()...
线程 21 - 在 FindNodeMapSizeTask.call() 内部
线程 20 - ...得到 Future.get(): 1121
树大小:1121
size_result.get() 会阻止 size(lmm_self) 的返回,直到 len(...) 传递其结果,即使在 def send() 中的 method_call_elements = self.input_queue.get() 之后放置了 sleep(1)。
工作正常,但当然使用 Java FutureTask。任何对此的pythonic解决方案都会引起我的兴趣......
后来还是
嗯...咨询我的 Beasley Python Essential Reference,我可以看到使用 threading.Event 沿着这些路线做某事的非常清晰的方法...
python - 为什么在执行委托函数时这个 Python 回溯不好
我有一个允许事件委托模式的搜索类。其他类可以注册一个函数,以便在搜索更新时调用。
出现问题时,回溯不会显示接收器功能。例如:
我的搜索类运行这个......
...如果委托函数签名是错误的...
……我看到了……
请注意,异常消息中的委托函数名称是正确的,但回溯并没有那么远。
错误是因为委托签名应该有一个模式参数。问题是回溯没有显示此错误发生的位置。它应该更远地回到引用指向的函数对象。
知道如何解决这个问题吗?
注意:我更新了代码和解释。我不想用额外的代码来混淆这个问题,但我觉得我需要展示更多。这不显示是什么触发了该功能onTextChanged()
。这实际上是 Qt 小部件实现的一部分,当有人输入 QLineEdit 时它会运行此功能。所以模式是,父小部件创建搜索小部件,然后连接它的函数以在文本更改时调用。我希望这有帮助。
python - Python:列出可调用对象?
我试图仅列出可调用对象,但我似乎做错了什么。例如,
但是,这是错误的,例如{}.__doc__
显然是字符串等。我的列表理解有什么问题