Python中有趣在__call__函数
作者:junjie 发布时间:2022-04-04 14:06:22
标签:Python,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
[]
'''


猜你喜欢
- 工资excel表格格式如下所示:使用python批量给每位员工发送工资条信息,格式如下:思路:首先是加载excel,获取当前sheet表格s
- 一般情况下,tensorflow里面变量初始化过程为: #variables ........... #......
- 我就废话不多说了,大家还是直接看代码吧~import kerasfrom sklearn.model_selection import tr
- mysql group by having 实例注意:使用group by的时候,SELECT子句中的列名必须为分组列。 如下实例必须包括n
- 前言声明:python版本3.6,以下讨论的Python也都是适用于3.x版本在实际使用安装python的pip安装 依赖库是非常的便捷的。
- QZONE平台的相册功能为保证加载速度一直以来以简洁的图片排列查看模式呈现相片,随着市场上各类相册产品推陈出新,用户越来越强烈的要求个人相册
- 可以使用虚拟屏幕的方式,在虚拟屏幕上运行浏览器并进行截图操作,这样就不会影响当前屏幕的展示。具体实现可以使用Xvfb和pyvirtualdi
- 实例如下所示:import matplotlib.pyplot as pltplt.imshow(img)#控制台打印出图像对象的信息,而图
- 这篇文章主要介绍Python的numpy库中的一些函数,做备份,以便查找。(1)将矩阵转换为列表的函数:numpy.matrix.tolis
- 前言由于今年暑假在学习一些自然语言处理的东西,发现网上对k-means的讲解不是很清楚,网上大多数代码只是将聚类结果以图片的形式呈现,而不是
- Server对象提供对服务器上访问的方法和属性.大多数方法和属性是作为实用程序的功能提供的。语法:Server.property|metho
- 最近在做一个项目,用双通道神经网络,每个通道输入不同数据训练,具有相同label。开始没想到如何实现,网上很多例子都是单通道,即便找到双通道
- 1. 多线程的作用简而言之,多线程是并行处理相互独立的子任务,从而大幅度提高整个任务的效率。2. Python中的多线程相关模块和方法Pyt
- 使用django启动命令行和脚本,可以方便的使用django框架做开发,例如,数据库的操作等。下面分别介绍使用方法。django shell
- django admin管理工具有很多好用的功能,例如搜索框、筛选器等,编码简单,功能强大。但是常规的时间筛选有一定局限性,只能显示一定时间
- 需求:序列化外键,获取外键的除id之外的值使用Django REST Framework虽然开发接口快速,但是如果想要获取到除外键id值之外
- 使用matplotlib绘图时,在弹出的窗口中默认是有工具栏的,那么这些工具栏是如何定义的呢?工具栏的三种模式matplotlib的基础配置
- 本文实例讲述了Python实现将目录中TXT合并成一个大TXT文件的方法。分享给大家供大家参考。具体如下:在网上下了一个dota的英雄攻略,
- 最近的项目涉及到很多表单的制作,特别是复选框(checkbox)和单选框(radio)。但是在前端开发过程中发现,单(复)选框和它们后面的提
- Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree。首先 import 之