Python可调用对象
来源:互联网 发布:英文域名有哪些 编辑:程序博客网 时间:2024/06/05 09:56
关于Python可调用对象的一篇好文,情不自禁copy过来了,尊重作者原创,引用如下:
http://www.jianshu.com/p/a96e71ff7f07
Python中有一个有趣的语法,只要定义类型的时候,实现call函数,这个类型就成为可调用的。
换句话说,我们可以把这个类型的对象当作函数来使用,相当于重载了括号运算符。
例如,现在我们要计算重力环境下的自然落体位移。我们知道Sy=(gt**2)/2,那么,我们可以建立一个函数:
def g_dpm(t): return (9.8*t**2)/2
我们都知道,地球表面的重力加速度约等于9.8m/s**2,这个函数实在没什么技术含量。
慢,头儿说了,我要算的是火星啊¥%#!
呃……你能说人家无理取闹么?EA的FIFA足球里,我还见过微重力模式的球场,总之,在计算机程序里,很多超现实的需求都有可能。
恩,最简单的办法当然是:
def mar_g_dpm(t): return (3.92*t**2)/2 #火星表面的重力加速度约等于地球表面的2/5
不过,你真的能保证下次那个可爱的策划不会再设计一个金星场景?或者木星?或者该死的大魔导师行会开始出售新的魔法卷轴——重力操控?
当然,我们可以这样设计这个函数:
def g_dpm(g, t): return (g*t**2)/2
但是g相对于t,是一个稳定得多的数量,基本上,在一次相关运算中,g可以当作常量。那么,一个可调用对象也许更适合。下面定义这样一个类型:
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)。
同样的方式,可以很容易的生成其他重力环境下的自由落地公式
我们需要判断python中的对象是否可以调用,可以用内置方法python callable()
如果对象可以调用的,则返回true,如果对象不能调用,则返回false.
0 0
- Python可调用对象
- Python的可调用对象
- Python的可调用对象
- python的可调用对象
- python __call__ 可调用对象
- python __call__ (可调用对象)
- python __call__ (可调用对象)
- 【python学习】之五、可调用对象
- python中所有可调用对象
- Python 对象特殊方法:(二)对象可调用接口
- Python可调用对象__call__方法的用法分析
- Python 内部:可调用对象是如何工作的
- python 函数是可调用对象和特殊方法__call__
- 可调用对象
- 可调用对象
- c++ 可调用对象
- 可调用对象
- 可调用对象
- 自助Linux之问题诊断工具strace
- OpenGL 第一个三角形
- Cocos2dx------详细介绍如何编写扫雷这个游戏含源码(二)
- Android 安全——Java环境动态加载Jar之Jar包的加密和解密
- MacBook U盘装系统详细步骤
- Python可调用对象
- 优化数据页面(16)——表题尽量窄于表格
- Gradle添加support包
- C++ 零散知识点速记 -- <深入探索C++对象模型> 读书笔记
- Nodejs服务器管理模块forever
- Android之ListView异步加载网络图片(优化缓存机制)
- 捕鱼两客户端,同一真实玩家金币不一致
- 优化数据页面(17)——标注重点数据
- 值得推荐的C/C++框架和库