zoukankan      html  css  js  c++  java
  • 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)。同样的方式,可以很容易的生成其他重力环境下的自由落地公式。

  • 相关阅读:
    消息中间件(一)MQ详解及四大MQ比较
    SIP协议
    PAT (Basic Level) Practice 1008 数组元素循环右移问题
    LeetCode-Algorithms 1. 两数之和
    PAT (Basic Level) Practice 1040 有几个PAT
    PAT (Basic Level) Practice 1023 组个最小数
    PAT (Basic Level) Practice 1021 个位数统计
    PAT (Basic Level) Practice 1007 素数对猜想
    PAT (Basic Level) Practice 1006 换个格式输出整数
    PAT (Basic Level) Practice 1004 成绩排名
  • 原文地址:https://www.cnblogs.com/pyfreshman/p/5028600.html
Copyright © 2011-2022 走看看