python 杂记
2015-12-08 15:57
549 查看
class TestA(object): def __init__(self): print("A is initing"); def foo(self): print("foo"); class TestB(TestA): def __init__(self): #python 实现超类方法的方式 super(self.__class__, self).__init__();#法一 super(TestB, self).foo() #法二 print(type(self.__class__) == TestB);print(type(TestA)) def soo(self): super(TestB, self).foo(); print "soo" if __name__ == '__main__': TestB().soo();
Python 线程相关模块
提示:在使用thread 模块时,当主线程被清除的时候,其他子线程没有被清除就退出了,但是threading模块中的主线程退出时,在确保子线程都退出时,整个进程才会结束,因此建议使用threading模块
python __call__ (可调用对象)
__call__
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)。同样的方式,可以很容易的生成其他重力环境下的自由落地公式。
相关文章推荐
- Python3.4 邮件(包含附件与中国)
- Python sqlalchemy 多表查询 没有外键
- 简单总结Python中几种字符串连接的方法
- Python实现二叉树遍历方法(leetcode)
- Python中 os.system()与os.popen()
- 【原】python中文文本挖掘资料集合
- Python+Hadoop Streaming实现MapReduce(word count)
- python开发_常用的python模块及安装方法
- Python
- python --装饰器
- python
- Python yield
- python 学习笔记一
- Python使用pygame模块编写俄罗斯方块游戏的代码实例
- Python 模版(一)
- python基础之模块
- python(1)介绍和流程控制
- Python元组tuple
- python之Wing IDE中文乱码问题
- Python编程预约参观北京行动纲要