>Python has a more general concept of callable object, that is every object that can be called, which means applied on some data.

我在读一篇博客的时候看到这句话,作者认为Python对callable的概念是比较宽泛的,任何对象都可以被调用。这样说对么?如何理解?

Python的内建的

callable()

函数可以用来检测是否能够调用,如果所有对象都可以call,那么为什么还有检测呢?

见stackoverflow上有关python的callable的讨论http://stackoverflow.com/questions/111234/what-is-a-callable-in-python

python的Object是一个泛型概念,而不是特制类的对象,比如函数也可以是一个Object,类也可以是Object。你看下callable()的原型,定义在builtin.py中

def callable(p_object): # real signature unknown; restored from __doc__

"""

callable(object) -> bool

Return whether the object is callable (i.e., some kind of function).

Note that classes are callable, as are instances with a __call__() method.

"""

return False

仔细一看,这是英语断句的问题啊

english

Python has [a more general concept] of [[callable object], that is every [object that can be called, which means applied on some data]]

不是“每个对象都能被调用”,而是“callable object”是“所有能被调用的对象”,最后那个从句解释调用的概念是“被应用于数据”。

Python has a concept

Python has a more general concept

Python has a more general concept of callable object

Python has a more general concept of callable object, that is every object that can be called

Python has a more general concept of callable object, that is every object that can be called, which means applied on some data

同意 @charliecui 说的

python的Object是一个泛型概念

对于文中的话,我理解是

python

中一切都是对象,这些对象都是

object

的实例,

Python

创建对象是通过

type

方式,这个

type

又有一个

__call__

方法,实现了这个方法,最终的对象就能被调用(

callable

)。

大概意思就是这些对象通过技巧都是可以调用的,通过使这些对象可以调用来处理一些数据。

简单的用法就是类似

web

框架中的路由 (

Router

), 使得 Router直接装饰,不需要额外的创建实例来创建对象,而是让自身就是一个可以调用的对象。

python

class Router():

def __call__(self):

pass

@Router('/index')

def index():

pass

具体实现可以参考 可以参考 https://github.com/nod/tornroutes/blob/master/tornroutes/__init__.py

一个给

tornado

实现

router

decorator

python callable对象_Python中callable的理解?相关推荐

  1. python 生成器表达式_Python中的列表理解与生成器表达式

    python 生成器表达式 The list is a collection of different types of elements and there are many ways of cre ...

  2. python中callable什么意思_python中callable对象有什么用

    python中callable对象有什么用 发布时间:2020-12-10 09:27:00 来源:亿速云 阅读:58 作者:小新 小编给大家分享一下python中callable对象有什么用,希望大 ...

  3. python中的对象_Python中的变量、对象

    由于没时间系统学习下Python 只能见一个问题探究一个问题了 一.初级 - 对象 关于Python中的数据类型,今天重新认识了下.[参考] 首先,Python中,对象才有类型, 变量是没有类型的,它 ...

  4. python self 序列_python中序列化对象

    # 序列化对象p1 import pickle                               # 内置库 class People: def __init__(self, name, a ...

  5. python中 r是什么意思_python中rb含义理解

    Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 文件使用方式标识 'r':默认值,表示从文件读取数据 'w':表示要向文件写入数据,并截断以前 ...

  6. python中rb是什么意思_python中rb含义理解

    python中rb含义理解 Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 文件使用方式标识 'r':默认值,表示从文件读取数据 'w':表示 ...

  7. python 冷门知识点_Python中的10条冷门知识

    下面时Python中一些不常见的冷门知识,感兴趣的小伙伴不妨来学习一下. 1.省略号也是对象 - 这是省略号,在Python中,一切皆对象.它也不例外.在 Python 中,它叫做 Ellipsis ...

  8. python缓存技术_Python中整数的缓存机制讲解

    在python中,如下代码结果一定不会让你吃惊: Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:06:53) [MSC v.1600 64 bi ...

  9. python基本统计量_Python中简单统计量的计算

    本篇文章给大家带来的内容是关于Python中简单统计量的计算,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.这些操作都要确保已经在电脑中安装好了Anaconda集成库,如果安装好 ...

最新文章

  1. BGP相邻体之间磋商的过程
  2. 【转】卡尔曼滤波算法详细推导(相当值得一看)
  3. python 3d绘图-python - 轻松学会Matplotlib 3D绘图
  4. HTML5 progress元素的样式控制、兼容与实例
  5. BZOJ4161 常系数齐次线性递推
  6. 有的时候入门只是一瞬间
  7. Java知识系统回顾整理01基础05控制流程07结束外部循环
  8. mayaa的一些代码
  9. python常用模块一览表_python 常用模块
  10. SAS的安装过程和遇到的问题(提供安装包)
  11. 统计遗传学:第四章,GWAS分析
  12. 杭州电子科技大学ACM1020 JAVA
  13. 高压均质机原理、使用方法及维护注意事项
  14. 声纹识别数据:让疫情期间的“闻声识人”更安全
  15. c语言对企业有什么作用,C语言企业级的需要学习的知识
  16. 微课--使用Python查看本机实时网速(GUI版)
  17. AR大屏互动的原理是什么?可以应用在哪些场景中?
  18. msi计算机主板,整套解决方案:MSI主板BIOS编程器_计算机硬件和网络_IT /计算机_信息...
  19. 四十三 iOS中UILabel部分字体颜色的修改
  20. win10用户注销后该怎么办?如何彻底删除原有的用户名

热门文章

  1. linux网卡中prefix是什么,网络 – PREFIX与NETMASK
  2. linux内核4.9版本,Linux Kernel 4.9.14 LTS和4.4.53 LTS维护版本更新发布
  3. unity模型制作(二):绘制一个铰链
  4. Ajax学习笔记--- 【xmind 详细展示 浏览器与 服务器端通信,请求与响应报文】
  5. 华为大模型重磅来袭!!!
  6. 2023.6.23每日一题
  7. Python 内置时间模块:Calendar
  8. c语言单源最短路径问题实验报告,单源最短路径问题Dijkstra算法的c语言实现
  9. VisualStudic c# 中使用Python
  10. 欧洲之星 fotona4d是什么,fotona4d有什么功效