返回顶部
首页 > 资讯 > 后端开发 > Python >Python判断对象是否是functio
  • 562
分享到

Python判断对象是否是functio

对象Pythonfunctio 2023-01-31 01:01:06 562人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

在python中,判断一个对象是否是方法有如下三种方法。 1. 根据“__call__”属性判断 有时候用Python就有这么一种感悟,各种钩子函数就是通过内置的“__”属性实现,python学得好不好,就是对“__”属性理解得透

python中,判断一个对象是否是方法有如下三种方法。

1. 根据“__call__”属性判断

有时候用Python就有这么一种感悟,各种钩子函数就是通过内置的“__”属性实现,python学得好不好,就是对“__”属性理解得透彻不透彻。

python函数在调用时,一定会首先调用其相关“__call__”函数(没有空格),请参见python总结(四):类装饰器与方法的动态添加中的用法。

add = lambda a, b: a + b
#   判断成功
if(hasattr(add, '__call__')):
        print add(1,2)

2. 利用callable判断

这是一个据传快要废弃的方法,但是在Python 2中依旧很好用,如下:

#   判断成功
if(callable(add)):
        print add(2, 2)

3. 利用isfunction进行判断

Python的inspect模块包含了大量的与反射、元数据相关的工具函数,isfunction就是其中一种,使用方法如下:

from inspect import isfunction
#   判断成功
if(isfunction(add)):
    print add(5, 5)

4. 无效的types.MethodType

出人意料的是types.MethodType竟然无效(版本2.7.14),如下:

import types
#   竟然无效
if(isinstance(add, types.MethodType)):
    print add.__name__

在这个引申过程中,还发现了一些有意思的现象,不同的function的输出结果不一样:

>>> type(fORMat)
<type 'builtin_function_or_method'>
>>> type(add)
<type 'function'>

更有意思的是,type竟然无法对print进行操作,如下:

>>> type(print)
  File "<stdin>", line 1
    type(print)
             ^
SyntaxError: invalid syntax

那print是什么?

结论

如何判断一个对象是否是方法,本文提供了3种方法,并发现了一些有意思的现象,再问一遍,print是什么?

--结束END--

本文标题: Python判断对象是否是functio

本文链接: https://lsjlt.com/news/184473.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python判断对象是否是functio
    在Python中,判断一个对象是否是方法有如下三种方法。 1. 根据“__call__”属性判断 有时候用python就有这么一种感悟,各种钩子函数就是通过内置的“__”属性实现,python学得好不好,就是对“__”属性理解得透...
    99+
    2023-01-31
    对象 Python functio
  • java判断对象是否是数组
    从构造函数入手,obj instanceof Arraytypeof 和 instanceof 都可以用来判断变量,typeof方法返回一个字符串,来表示数据的类型; 但是typeof来判断数据类型其实并不准确。比如数组、正则、日期、对象的...
    99+
    2017-01-10
    java基础 java 判断 对象 数组
  • java判断对象是否为空
    对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序...
    99+
    2018-09-04
    java
  • php判断对象是否为空
    if($users->count()==0){                    $result->errer = "not exist";                } php判断对象是否为空两种方法:1、网上很多方法分享说用em...
    99+
    2023-09-13
    java javascript 服务器
  • java判断对象是否是string类型
    instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 用法:result = object instanceof clas...
    99+
    2019-10-13
    java
  • java怎么判断对象是否null
    判断Java对象是否为null可以有两层含义: (推荐学习:java课程)第一层: 直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候返回false。第二层:在object...
    99+
    2017-08-19
    java基础 java
  • java判断对象是否为数组
    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。用法: (推荐学习:java课程)Array.isArray(object)参数object:要检测的内容返回值返回值是布尔类型...
    99+
    2017-12-03
    java基础 java
  • 怎么判断是否为jquery对象
    今天小编给大家分享一下怎么判断是否为jquery对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • java判断对象是否是null的方法
    Java 语言支持两种数据类型,分别是基本数据类型和引用数据类型,而 null 是一种特殊的引用数据类型。判断一个对象是否为 null,可以用if (obj == null) { }来判断。代码如下:// 判断对象是否为null if (s...
    99+
    2014-08-30
    java 对象
  • js怎么判断对象是否是数组
    小编给大家分享一下js怎么判断对象是否是数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先我们来看一个小例子。<scr...
    99+
    2024-04-02
  • jQuery怎么判断变量是否是对象
    今天小编给大家分享一下jQuery怎么判断变量是否是对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、判断变量类型在介绍...
    99+
    2023-07-06
  • java判断一个对象是否数组
    判断对象是否为数组:public static void main(String[] args) { String[] a = ["1","2"]; if(a instanceof String[]){ ...
    99+
    2019-07-20
    java基础 java 数组
  • java如何判断对象是否相等
    equals的作用及与==的区别equals被用来判断两个对象是否相等。equals通常用来比较两个对象的内容是否相等,==用来比较两个对象的地址是否相等。equals方法默认等同于“==”。Object类中的equals方法定义为判断两个...
    99+
    2021-10-21
    java基础 java 判断 对象 相等
  • java对象如何判断是否为空
    在实际书写代码的时候,经常会因为对象为空,而抛出空指针异常java.lang.NullPointerException。下面我们来看一下java中判断对象是否为空的方法:(推荐:java视频教程)首先来看一下工具StringUtils的判断...
    99+
    2017-05-08
    java 对象
  • 如何判断java对象是否为空
    首先来看一下工具StringUtils的判断方法:一种是org.apache.commons.lang3包下的;另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距的:S...
    99+
    2017-08-03
    java入门 判断 java 对象
  • java判断集合对象是否为空
    Java 集合类中的 List.isEmpty() 方法用于判断集合对象是否为空,如果为空,则返回 true,否则返回 false。语法:isEmpty()应用:本示例使用 List 接口的实现类 ArrayList 初始化一个列表对象 l...
    99+
    2014-08-18
    java基础 java 判断 集合对象 为空
  • java判断对象是否为字符串
    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。用法:result = object instanceo...
    99+
    2020-01-27
    java基础 java
  • jquery如何判断对象是否相同
    本篇内容介绍了“jquery如何判断对象是否相同”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • javascript如何判断对象是否为空
    这篇文章将为大家详细讲解有关javascript如何判断对象是否为空,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法:1、使用“JSON.stringify()”方法,将对象转化为json字符串,再判断...
    99+
    2023-06-14
  • jvm怎么判断对象是否回收
    JVM(Java虚拟机)使用垃圾回收器来判断对象是否需要被回收。垃圾回收器会周期性地扫描堆内存中的对象,并标记那些仍然被引用的对象为...
    99+
    2023-10-23
    jvm
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作