• python 杂记


     1 class TestA(object):
     2     def __init__(self):
     3         print("A is initing");
     4     def foo(self):
     5         print("foo");
     6         
     7 class TestB(TestA):
     8     
     9     def __init__(self):
    10         #python 实现超类方法的方式
    11         super(self.__class__, self).__init__();#法一
    12         super(TestB, self).foo()               #法二
    13         print(type(self.__class__) == TestB);print(type(TestA))
    14         
    15     def soo(self):
    16         super(TestB, self).foo();
    17         print "soo"
    18         
    19 if __name__ == '__main__':  
    20     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)。同样的方式,可以很容易的生成其他重力环境下的自由落地公式。

  • 相关阅读:
    lnmp一键安装包,安装多版本php,并开启redis与swoole
    wangEditor的使用
    记一次傻逼的录入
    PHP自动加载
    pip升级
    Ubuntu安装mycli,让mysql命令行可以自动提示
    Redis存储AccessToken
    微信小程序生成太阳码
    巧妙的新订单提醒功能
    使用pt-query-digest进行日志分析
  • 原文地址:https://www.cnblogs.com/pyfreshman/p/5028600.html
Copyright © 2020-2023  润新知