问题标签 [callable-object]

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.

0 投票
1 回答
146 浏览

c++ - STL 概念是否涵盖了 STL 算法的所有参数要求?

在查看某些算法的模板名称时,
我发现该名称对应于库概念。

std::mismatch为例。

它需要一个BinaryPredicatewhich 也是一个库的概念


不过,看看其他算法,我看到:

  • 一元谓词
  • 一元函数
  • 一元操作
  • 二元运算
  • ETC

他们没有对应的概念。

他们被排除在外是有原因的吗?
这些概念是否可以通过结合现有概念而得出?

0 投票
2 回答
3027 浏览

python - 获取任何可调用对象的参数?

我有兴趣获得一种通用方法来获取可调用 Python 对象所采用的参数和关键字参数列表。对于具有该功能的功能,这是直截了当的inspect.getargspec,例如:

但是,这在以下情况下会失败:

请注意,有一些方法可以获取偏函数和可调用对象的参数,即:

但如果可能的话,我想要一种更通用的方法来获得这些结果。

0 投票
2 回答
1154 浏览

julia - 如何确定 Julia 对象是否可调用

在 Julia 中,确定对象是否可调用的最佳方法是什么?(例如,有没有类似 python 的callable功能?)

编辑:这是人们希望的:

0 投票
2 回答
1448 浏览

python - 函数调用和 __call__ 属性

Python 的可调用对象是具有__call__方法的对象。它们大部分时间都是函数,但也可能是类实例。

但碰巧函数确实有__call__方法。因此,__call__方法也有__call__方法。以下 REPL 会话显示我们可以链接__call__s:

... 等等。值得注意的是,所有这些方法都有不同的地址。此外,它们都有相同的行为:

那么,当我写的时候print("a"),实际上叫什么?是print,还是print.__call__?如果我Foo用方法定义一个类__call__怎么办?

此外,怎么可能每种__call__方法都有自己不同 __call__的方法?难道它们实际上是在我尝试访问它们时创建的吗?

0 投票
2 回答
6193 浏览

python - 可调用类型的定义是什么?

背景:我试图理解为什么静态和类方法在作为描述符时不可调用,而类的普通方法(即既不是静态方法也不是类方法的类的方法)和不是类属性的函数都是描述符并且可以调用。

在 Python 中,可调用类型的定义是什么?

  1. 来自https://docs.python.org/3/reference/datamodel.html

    可调用类型这些是可以应用函数调用操作(参见调用部分)的类型:

    运算符是“函数调用操作”()吗?那么可调用类型是否定义为()可以应用函数调用运算符的实例的类型?

  2. 来自https://docs.python.org/3/reference/expressions.html#calls

    主对象必须评估为可调用对象(用户定义的函数、内置函数、内置对象的方法、类对象、类实例的方法以及所有具有 __call__()方法的对象都是可调用的)。

    这是否意味着可调用类型可能有也可能没有 __call__()方法?如果一个类有一个__call__()方法,那么它一定是一个可调用的类型吗?如果一个类没有__call__() 方法,那么它可能是也可能不是可调用类型?

    “自定义函数、内置函数、内置对象的方法、类对象、类实例的方法”没有 __call__()方法吗?它们是可调用类型的实例吗?它们分别有哪些具体类型?

谢谢。

0 投票
7 回答
749 浏览

python - 在 Raspbian 上同时运行多个 python 版本

在 python 3.1 出现的时候,我有一些旧程序。在程序中,我经常使用 将Callable()函数及其参数传递给我的 TKinter 应用程序:

现在我想再次使用我的程序,但callable- 对象不见了。在网上,我发现这个功能在 python 3.2 中被删除了,没有一个替代品对我有用。

最后我决定重新安装python 3.1。但是,我不知道是否可以同时安装多个 python 3 版本,或者当我想使用这个特殊版本时如何为这个版本“创建”一个 shell 命令。

我的问题是:

  • 是否有替换Callable- 已删除的对象?
  • 如何同时使用多个 python 版本?
  • 如何创建匹配的 shell 命令?
0 投票
0 回答
67 浏览

python - 错误 str 不可调用

这是代码示例(python 3.6):

这会产生错误“str object is not callable”。但我不明白为什么?我正在处理更大的数字(整数),我需要先将它们转换为字符串,然后才能使用它们。我怎样才能做到这一点?

0 投票
6 回答
6748 浏览

c++ - 如何检查模板参数是否是具有给定签名的可调用对象

基本上,我想要实现的是注册可调用(函数、lambda、带有调用运算符的结构)具有正确签名的编译时验证(可能带有很好的错误消息)。示例(static_assert要填写的内容):

0 投票
1 回答
8589 浏览

regex - 来自列值和正则表达式的 Pyspark 字符串模式

嗨,我有 2 列的数据框:

我想生成第三列,其中一个单词出现在文本中的 key_word 之前。

我试过这个,但它不工作

这是创建数据框示例的代码

0 投票
1 回答
136 浏览

templates - 如何根据对象的调用签名重载具有可调用对象作为参数的函数?

例如,给定以下代码

我想编写两个版本的fun,一个适用于具有 A 签名的对象,另一个适用于具有 B 签名的对象:

我期待这种行为

当然,前面的例子在编译时会抛出一个模板重定义错误。

如果 B 是一个函数,我可以重写fun为这样的:

但我想fun同时使用函数和可调用对象。使用std::bind或者std::function可能会解决问题,但我使用的是 C++98,而这些是在 C++11 中引入的。