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

为什么在python中有可调用对象?

师赤岩
2023-03-14
问题内容

可调用对象的目的是什么?他们解决什么问题?


问题答案:

它们获取参数并根据这些参数返回结果。

可调用 是RESP的接口的功能的只是一个抽象的形式,定义了对象的作用就像一个功能(即接受参数)。

由于函数是一流的对象,因此很明显,函数是可调用的对象。如果您在谈论__call__方法,那么这只是众多特殊方法之一,您可以使用这些特殊方法来重载自定义对象的行为,例如用于算术运算或定义
调用 对象时会发生的情况。

为什么要使用此类对象的一个​​想法是拥有某种工厂对象,该工厂对象本身会创建其他对象。



 类似资料:
  • 问题内容: 我得到了这个,我期望它在打印x.withdraw()时能打印410。 这是我的代码: 我是否需要在类本身中修复某些问题,或者我的方法调用有问题? 问题答案: 您在实例上设置具有相同名称的属性: 您正在尝试调用的是该属性,而不是方法。Python不会区分方法和属性,它们也不位于单独的命名空间中。 为属性使用其他名称;(退出的过去时)作为更好的属性名称浮现在脑海: (我也纠正了一个错字;您

  • 问题内容: 我来自C语言,正在学习Python。缺乏显式的类型安全性令人不安,但是我已经习惯了。面对动态语言的所有优点,缺少内置的基于契约的编程(纯抽象类,接口)的不足是必须习惯的。 但是,无法请求const- cortectness使我疯狂!为什么Python中没有常量?为什么不鼓励使用类级常量? 问题答案: C和Python属于两种不同的语言类别。 前一个是 静态 类型的。后者是 动态的 。

  • 问题内容: 我不应该能够调用实例化对象的私有方法。我想知道为什么下面的代码有效。 我知道可以从类中访问私有方法。但是,如果类中的方法实例化了同一类的对象,则作用域规则是否不适用于该实例化的对象? 如本例所示,像main这样的静态方法可以访问类的非静态成员吗​​? 问题答案: 您的方法是的方法,因此可以调用的私有方法。 只是因为它是一个方法并不妨碍它表现得像为目的的方法,等等。 只是阻止的方法 等

  • 问题内容: 以下接口和类已成功编译。 问题在下面的输出中提到: 输出: X 瞧,MyInterface是一个接口, 那为什么编译器允许编译 mi.getClass(),mi.wait()。 或如何在接口中使用Object类的方法。 ÿ 编辑 :-我接受拒绝的答案,因为这是最具解释性的。但是在阅读了答案之后,又出现了一个问题:- “ 请记住,如果接口试图在Object类中声明一个声明为’final’

  • 问题内容: 我正在尝试找出Python lambda。lambda是在现实生活中应该被遗忘的那些“有趣”语言项目之一吗? 我敢肯定,在某些情况下可能需要使用它,但是鉴于它的晦涩之处,在将来的发行版中重新定义了它的潜力(根据各种定义我的假设)以及降低的编码清晰度-是否应该被避免? 这让我想起了C类型的溢出(缓冲区溢出)-指向顶部变量,并通过重载来设置其他字段值。感觉像是技术娴熟的演艺风格,但却是维护

  • 问题内容: 为什么我不能执行以下操作: 我希望它能打印出来,因为我们用它覆盖了实例,但是它根本不做任何事情。甚至不会抛出错误。只是忽略分配。 我了解几乎没有任何人愿意这样做,但是您似乎做不到,这仍然很奇怪。 更新: 我现在知道 为什么 它不起作用,但是我仍然想知道是否有任何方法可以从实例中替换实例。 问题答案: 任何 简单的分配给 任何 的参数 任何 函数的行为确实是在Python以同样的方式:结

  • 问题内容: 还是? 我有一个来自的线程对象: 其中pObject是实现Runnable接口的类的对象,然后在线程对象上调用start方法,如下所示: 现在,我的理解是,当调用start()时,JVM隐式(立即)调用了run()方法,该方法可能会被覆盖(就我而言) 但是,在我的情况下,似乎没有立即(根据需要)调用start()方法,而是直到从调用块完成其他语句/方法为止,即,如果在start()调用

  • 问题内容: 我是Python的新手,并且正在学习教程。本教程中有一个示例: 现在,在教程中,。但就我而言,我得到以下错误: 问题答案: 好像你已经用指向类实例的相同名称遮盖了指向类的内置名称。这是一个例子: 我相信这是显而易见的。Python将对象名称(函数和类也是对象)存储在字典中(命名空间实现为字典),因此你可以在任何范围内重写几乎任何名称。它不会显示为某种错误。如你所知,Python强调“特