python - 检查函数是否是某个对象的方法

标签 python function methods

如何判断一个函数是否是某个对象的方法?

例如:

def check_method(f):
    ...

check_method(lambda x: x + 1)           # >>> False
check_method(SomeClass().some_method)  # >>> True

在我的“helloworld”示例中,方法中有一些特殊属性(例如“im_self”、“__self__”等)。我可以依靠它们还是有更好的方法?

最佳答案

使用inspect.ismethod() .

文档指出:

Return true if the object is a bound method written in Python.

这意味着它将按照您在 Python 中定义的类的预期方式工作。但是,对于 list 等内置类的方法或在扩展模块中实现的类,它将返回 False

关于python - 检查函数是否是某个对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5963729/

相关文章:

ruby - 为什么方法声明在 ruby​​ 中评估为 nil?

methods - 普通 lisp 中的匿名方法

python - 8 拼图计算邻居 python

python 排序列表列表与类型转换

c++ - 在函数中通过引用调用

javascript - 函数中的对象未定义js

python - 正在加载/流式传输 8GB txt 文件?并标记化

python - 由于消息无法提交消息 Django Outlook/hotmail 的永久异常而无法处理消息

PHP:将函数范围限制在当前文件内

java - 当用户点击 "Delete data"Android 时如何执行我的应用程序方法