__doc__  类(实例).__doc__ 类的描述信息 '''class des'''

__module__ 类(实例).__module__ 表示当前操作的对象在那个模块

__class__     表示当前操作的对象的类是什么

__call__ 类(实例)调用时(加括号)执行

__dict__查看类或实例的所有属性结果 为字典

__str__打印对象时执行

python特殊函数 __call__()

 
__call__
在Python中,函数其实是一个对象: >>> f = abs
>>> f.__name__
'abs'
>>> f(-123)
123
由于 f 可以被调用,所以,f 被称为可调用对象。 所有的函数都是可调用对象。 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。 我们把 Person 类变成一个可调用对象: class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender def __call__(self, friend):
print 'My name is %s...' % self.name
print 'My friend is %s...' % friend
现在可以对 Person 实例直接调用: >>> p = Person('Bob', 'male')
>>> p('Tim')
My name is Bob...
My friend is Tim...
单看 p('Tim') 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。 任务
改进一下前面定义的斐波那契数列: class Fib(object):
???
请加一个__call__方法,让调用更简单: >>> f = Fib()
>>> print f(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

可以把实例对象用类似函数的形式表示,进一步模糊了函数和对象之间的概念

class Fib(object):
def __init__(self):
pass
def __call__(self,num):
a,b = 0,1;
self.l=[] for i in range (num):
self.l.append(a)
a,b= b,a+b
return self.l
def __str__(self):
return str(self.l)
__rept__=__str__ f = Fib()
print f(10)

最新文章

  1. 使用fiddler手机抓包
  2. ASP通过代码绑定Gridview控件
  3. Vue.js简介
  4. mysql安装后的配置
  5. Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2) D. Sea Battle 模拟
  6. 学习记录013-NFS相关知识点
  7. JS实现字符串去重,数组去重
  8. android源代码百度网盘分享
  9. mysql查询结果写入文件
  10. TypeScript 5 Angular 2
  11. Cookie基础
  12. React与Preact差异之 -- setState
  13. layui之事件监听(table)
  14. Nginx实战之反向代理WebSocket的配置实例
  15. Spring AOP实现 Bean字段合法性校验
  16. Qt笔记-const-虚函数-元对象系统
  17. 教你用PS快速抠出长发
  18. Django Rest framework 之 节流
  19. 全栈性能测试修炼宝典--Jmeter实战(二)
  20. QWidget编写的安卓app

热门文章

  1. gitHub优秀android项目
  2. 用MysQL语句怎么进行远程连接数据库
  3. centos 下文件夹共享
  4. [译] 如何像 Python 高手一样编程?
  5. 使用timeit模块 测试两种方式生成列表的所用的时间
  6. hdu 5139(离线处理+离散化下标)
  7. 天猫首页迷思之-jquery实现整个div的懒加载(1)
  8. HDU 1024 Max Sum Plus Plus(基础dp)
  9. EasyUI Datagrid 单元格编辑
  10. 新博客:11101001.com