Python中有趣在__call__函数

 更新时间:2015年06月21日 17:02:53   投稿:junjie  
这篇文章主要介绍了Python中有趣在__call__函数,本文直接给出一个使用实例,以此来讲解__call__函数的用法,需要的朋友可以参考下

Python中有一个有趣的语法,只要定义类型的时候,实现__call__函数,这个类型就成为可调用的。
换句话说,我们可以把这个类型的对象当作函数来使用,相当于 重载了括号运算符。

class g_dpm(object):
def __init__(self, g):
self.g = g
def __call__(self, t):
return (self.g*t**2)/2

计算地球场景的时候,我们就可以令e_dpm = g_dpm(9.8),s = e_dpm(t)。

class Animal(object):
  def __init__(self, name, legs):
    self.name = name
    self.legs = legs
    self.stomach = []    
 
  def __call__(self,food):
    self.stomach.append(food)
 
  def poop(self):
    if len(self.stomach) > 0:
      return self.stomach.pop(0)
 
  def __str__(self):    
    return 'A animal named %s' % (self.name)    
 
cow = Animal('king', 4) #We make a cow
dog = Animal('flopp', 4) #We can make many animals
print 'We have 2 animales a cow name %s and dog named %s,both have %s legs' % (cow.name, dog.name, cow.legs)
print cow #here __str__ metod work
 
#We give food to cow
cow('gras')
print cow.stomach
 
#We give food to dog
dog('bone')
dog('beef')
print dog.stomach
 
#What comes inn most come out
print cow.poop()
print cow.stomach #Empty stomach
 
'''-->output
We have 2 animales a cow name king and dog named flopp,both have 4 legs
A animal named king
['gras']
['bone', 'beef']
gras
[]
'''

相关文章

  • python 实现线程之间的通信示例

    python 实现线程之间的通信示例

    这篇文章主要介绍了python 实现线程之间的通信示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python cookbook(数据结构与算法)让字典保持有序的方法

    Python cookbook(数据结构与算法)让字典保持有序的方法

    这篇文章主要介绍了Python让字典保持有序的方法,涉及Python基于collections模块中的OrderedDict类实现控制字典顺序的相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件

    python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件

    这篇文章主要介绍了python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件,需要的朋友可以参考下
    2014-08-08
  • Python3实现的简单工资管理系统示例

    Python3实现的简单工资管理系统示例

    这篇文章主要介绍了Python3实现的简单工资管理系统,涉及Python文件读写、数据遍历、判断等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • rsa详解及例题及python算法

    rsa详解及例题及python算法

    RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,这篇文章主要介绍了rsa 详解及例题及python,需要的朋友可以参考下
    2022-04-04
  • 图解Python中的浅拷贝和深拷贝

    图解Python中的浅拷贝和深拷贝

    这篇文章主要介绍了图解Python中的浅拷贝和深拷贝,深拷贝,拷贝的程度深,自己新开辟了一块内存,将被拷贝内容全部拷贝过来了,浅拷贝,拷贝的程度浅,只拷贝原数据的首地址,然后通过原数据的首地址,去获取内容,需要的朋友可以参考下
    2023-11-11
  • Python实现12种降维算法的示例代码

    Python实现12种降维算法的示例代码

    数据降维算法是机器学习算法中的大家族,与分类、回归、聚类等算法不同,它的目标是将向量投影到低维空间,以达到某种目的如可视化,或是做分类。本文将利用Python实现12种降维算法,需要的可以参考一下
    2022-04-04
  • 动感网页相册 python编写简单文件夹内图片浏览工具

    动感网页相册 python编写简单文件夹内图片浏览工具

    这篇文章主要为大家详细介绍了动感网页相册的制作方法,即利用python编写简单文件夹内图片浏览工具,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • python实现从字典中删除元素的方法

    python实现从字典中删除元素的方法

    这篇文章主要介绍了python实现从字典中删除元素的方法,涉及Python中del方法的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • Python暴力破解Mysql数据的示例

    Python暴力破解Mysql数据的示例

    这篇文章主要介绍了Python暴力破解Mysql数据的示例,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-11-11

最新评论