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

python如何比较函数?

史旺
2023-03-14
问题内容

这怎么不出现属性错误?函数对象没有任何比较方法。它以某种方式使用id()吗?

fun1 = lambda:x
fun2 = lambda:x
print fun1 == fun1 # True
print fun1 == fun2 # False
print fun1 > fun2 # True
print fun1 < fun2 # False
print fun1 > 1 # True

我知道它比较地址,但是如何?拦截__lt eq__等是一些低级黑客吗?


问题答案:

函数对象没有定义自己的比较或丰富的比较。相反,它们从类型对象继承,这些类型对象根据内存中的对象地址实现丰富的比较。

因此,是的,它像内置的id()函数一样有效地使用地址。

在Python 3中,功能不再可排序。



 类似资料:
  • 尝试编写一些干净的JS排序函数。下面是我的模板中一个按钮的click处理程序,它调用各个方法按不同的属性排序。 它调用下面的方法。它的工作很好,这是很好的! 我遇到的问题是,我已经有了大约4个这样的排序方法,我想把if语句放入它们自己的函数中,以便更好地编写干巴巴的代码。所以我尝试了下面的方法,但是compareFunction甚至从来没有调用过GET。我做错了什么?

  • 问题内容: 我看到可以进行日期比较,也可以进行日期比较,但是我一直在努力寻找如何检查当前时间()是否早于指定时间(例如上午8点),还是晚于指定时间(例如上午8点),而不管日期如何。 问题答案: 您 无法 将特定时间点(例如“现在”)与一个固定的重复发生的事件(每天早上8点发生)进行比较。 您可以检查是否现在之前或之后, 今天 上午8点:

  • 问题内容: 如何比较javascript中的2个函数?我不是在谈论内部参考。说 可以比较和吗? 问题答案:

  • 问题内容: 只是通过学习python并开始研究嵌套/工厂函数(简单示例): 与创建类相比,工厂功能有什么优势吗?性能?记忆?清理? 问题答案: 我最喜欢嵌套函数的地方是,它比类少冗长。与您的maker函数等效的类定义为: 在您开始向构造函数添加更多参数之前,这似乎并不算糟糕。然后,以类的方式为每个参数增加一行,而函数仅获得额外的args。 事实证明,嵌套函数也具有速度优势: 这可能是由于嵌套函数版

  • 问题内容: 我正在走一个包含鸡蛋的目录,将这些鸡蛋添加到sys.path。如果目录中有相同.egg的两个版本,我只想添加最新的一个。 我有一个正则表达式·可以从文件名中提取名称和版本。问题是比较版本号,它是一个类似的字符串2.3.1。 由于我在比较字符串,所以2在10之上排序,但这对于版本是不正确的。 我可以进行一些拆分,解析,转换为int等操作,最终得到解决方法。但这是Python,而不是Jav

  • 我正在浏览一个包含鸡蛋的目录,以将这些鸡蛋添加到。如果目录中有同一个.egg的两个版本,我只想添加最新版本。 我有一个正则表达式