当前位置: 首页 > 面试题库 >

Python-什么是“可呼叫”?

贡可人
2023-03-14
问题内容

现在很清楚什么是元类,有一个相关的概念我一直都在使用,而并不知道它的真正含义。

我想每个人都在括号里犯了一个错误,导致了“对象不可调用”异常。而且,使用__init____new__导致怀疑这种血腥的__call__用途。

您能给我一些解释,包括魔术方法的例子吗?


问题答案:

可调用对象是可以调用的任何东西。

所述内置的可调用(PyCallable_Check在objects.c)检查该参数可以是:

具有__call__方法的类的实例或
是具有非null tp_call(c struct)成员的类型,该成员以其他方式指示可调用性(例如在函数,方法等中)
命名的方法__call__是(根据文档)

当实例被“调用”为函数时调用

class Foo:
  def __call__(self):
    print 'called'

foo_instance = Foo()
foo_instance() #this is calling the __call__ method


 类似资料:
  • Python 是荷兰人 Guido van Rossum (吉多·范罗苏姆,中国程序员称其为“龟叔”)在 1990 年初开发的一种解释型编程语言。 我们已经在《编译型语言和解释型语言的区别》一文中讲解什么是解释型语言。 图1:Python 的标志(Logo) Python 的诞生是极具戏曲性的,据 Guido 自述记载,Python 语言是在圣诞节期间为了打发无聊的时间而开发的,之所以会选择 Py

  • 我刚刚开始尝试twilio和twilio api。 我有一个工作账户,买了一个可以拨打和接听电话以及短信的电话号码。 我测试了通过标准python库打电话。效果很好。发送和接收短信(我的服务器以及通过twilio控制台和他们的测试Web客户端)也是如此 但是,当谈到从我注册的来电号码接到电话时,我没有接通twilio:电话号码似乎根本无法访问或立即挂断(不确定) 我测试了 来自twilio控制台的

  • 问题内容: 谁能解释一下,setup.py它是什么以及如何配置或使用? 问题答案: 是文件,通常会告诉你要安装的模块/软件包已与Distutils打包并分发,Distutils是分发Python模块的标准。 这使你可以轻松安装Python软件包。通常写就足够了: 将使用安装模块。避免直接致电。

  • 问题内容: 哪些类型的对象属于“可订阅”范围? 问题答案: 它基本上意味着对象实现了该方法。换句话说,它描述的是“容器”对象,这意味着它们包含其他对象。这包括字符串,列表,元组和字典。

  • 问题内容: 我想了解什么是Monkeypatching丁? 是类似方法/操作符的重载或委派吗? 这些东西有什么共同点吗? 问题答案: 不,这不像任何事情。它只是在运行时动态替换属性。 例如,考虑一个具有的类。该方法进行外部查找(例如,在数据库或Web API上),并且类中的各种其他方法都调用它。但是,在单元测试中,你不希望依赖于外部数据源-因此,你可以用返回一些固定数据的存根动态替换该方法。 由于

  • 问题内容: 我了解Python中可变对象和不可变对象之间的区别。我已经阅读了许多讨论差异的文章。但是,我还没有读到任何有关WHY整数是不可变对象的信息。 是否有这个原因?还是答案是“就是这样”? 编辑:我被提示将这个问题与其他问题“区分开”,因为这似乎是先前提出的问题。但是,我相信我要问的更多是哲学性的Python问题,而不是技术性的Python问题。 看来Python中的“原始”对象(即字符串,