Python中有七种可调用对象,可调用对象可使用内置函数callable来检测

一、用户自定义的函数:

  使用def语句或者lambda表达式创建的函数。

二、内置函数:

  使用C语言实现的函数,如len、sum或者time.strftime

三、内置方法:

  使用C语言实现的方法,如dict.get()

四、类方法:

  在类的定义体中定义的函数

五、类:

  在调用类时会运行类的__new__方法创建一个实例,然后运行__init__方法,初始化实例,最后把实例返回给调用方。Python中没有new运算符,所以调用类相当于调用函数。

六、类的实例:

  如果类定义了__call__方法,那么它的实例可以作为函数进行调用。并且__call__方法可以进行自定义重写。

  

import random

class BingoCage(object):
def __init__(self,items):
self._items=list(items)
random.shuffle(self._items) def pick(self):
try:
return self._items.pop()
except IndexError:
raise LookupError('pick from empty BingoCage') def __call__(self):
return self.pick()

七、生成器函数:

  使用yield关键字的函数或方法。调用生成器函数返回的是生成器对象。

最新文章

  1. PHPExcel中文开发手册翻译版(1)
  2. get([index])
  3. IE10、IE11和Microsoft Edge的Hack
  4. Android签名机制
  5. NTKO控件在阅读PDF时,显示DEMO的问题
  6. jQuery Pagination分页插件的使用
  7. javamail 利用qq邮箱做邮箱服务器,简单小demo
  8. ASP.NET MVC view引入命名空间
  9. SQL获取本周销售总数
  10. CSS3系列:流式(弹性)布局(flex布局)
  11. C++ 我想这样用(六)
  12. WordPress ‘crypt_private()’方法远程拒绝服务漏洞
  13. DOM 样式操作
  14. Github创建分支
  15. 第2阶段——编写uboot之编译测试以及改进(3)
  16. Java点滴之Java概述
  17. 【转载】C# 获取系统时间及时间格式
  18. 我眼中的Linux系统和红帽RHCE认证
  19. orcl regexp_like 的用法
  20. Python MySQLdb模块连接操作mysql数据库实例_python

热门文章

  1. [LeetCode] Number of Lines To Write String 写字符串需要的行数
  2. ActivityRouter 框架简单实用
  3. 【Java算法學習】斐波那契數列問題-兔子產子經典問題
  4. 让Delphi的TRichEdit支持新标准
  5. [ipsec][crypto] 在IPSec ESP使用AES-GCM加密时的IV
  6. 2018-2019-2 20165336 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
  7. Linux环境下虚拟环境virtualenv安装和使用
  8. C# DataGridView改变行颜色无效问题
  9. MySQL 允许局域网内其他网段主机访问本地MySql数据库
  10. linux 按文件大小排序