函数调用

Python IO

烈酒焚心 提交于 2020-02-28 00:45:37
I/O 在计算机中I/O是 Input/Output 的简写,表示输入和输出。由于程序和运行时的数据是在内存中驻留,并由CPU计算核心来执行,涉及到数据交换的地方比如磁盘、网络等时,就需要I/O接口。 通常程序完成I/O操作会有 Input 和 Output 两个数据流,当然也有只用一个的情况,比如从磁盘读取文件到内存,就只会使用 Input 操作。相反将数据从内存写入到磁盘文件时也只有一个 Output 操作。 输入输出是相对的,需要考虑具体的对象是什么。一般而言,当编写的程序需要读取磁盘文件时,相当于将磁盘的数据输入到程序中,对于程序而言读取的数据就属于 Input ,对于磁盘而言则相当于将数据输出给程序,输出的数据是属于 Output 。 Stream I/O编程中,流 Stream 是一个很重要的概念,可以把流想象成一根管道,数据就是水管中的水,但只能单向流动。 Input Stream 输入流是数据从外部比如磁盘或网络流进内存, Output Stream 输出流则是数据从内存 流到外部。例如,对于浏览网页来说,浏览器和服务器之间至少需要建立了两条水管才能收发数据。 同步异步 由于CPU和内存的速度远高于外设的速度,所以I/O编程中存在速度验证不匹配的问题 。 比如说要将100MB的数据写入磁盘,CPU输出100MB数据只需0.01秒

Oracle存储过程

安稳与你 提交于 2020-02-27 21:57:00
http://blog.csdn.net/u013057786/article/details/17165623 Oracle存储过程 2013-12-06 13:11 807人阅读 评论 (0) 收藏 举报 oracle 一、 存储过程 1、定义 所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过 编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数 来调用并执行它,从而完成一个或一系列的数据库操作。 2、存储过程的创建 Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。 (1) 无参存储过程语法 Sql代码 create or replace procedure NoParPro as //声明 ; begin // 执行 ; exception//存储过程异常 ; end; (2) 带参存储过程实例 Sql代码 create or replace procedure queryempname(sfindno emp.empno%type) as sName emp.ename%type; sjob emp.job%type; begin .... exception .... end; (3) 带参数存储过程含赋值方式 Sql代码 create or

Python基础 三器 (装饰器&生成器&迭代器)

时间秒杀一切 提交于 2020-02-27 18:51:39
一. 装饰器 1、装饰器的作用 - 1.装饰器作用: 本质是函数(装饰其他函数)就是为其他函数添加其他功能 装饰器必须准寻得原则: 1)不能修改被装饰函数的源代码 2)不能修改被装饰函数的调用方式 2.实现装饰器知识储备: 1)函数即“变量” 2)高阶函数 3)嵌套函数 高阶函数+潜逃函数=》装饰器 2、使用高阶函数模仿装饰器功能 1)定义:把一个函数名当做实参传给另一个函数 2)返回值中包含函数名 3)下面使用高阶函数虽然可以实现装饰器的一些功能,但是违反了装饰器不能改变调用方式的原则,以前使用bar()现在将调用方式改编成了test1(bar)就是将bar的函数名当做变量传给了test1() #! /usr/bin/env python # -*- coding: utf-8 -*- import time def timer ( func ) : start_time = time . time ( ) func ( ) print '函数执行时间为' , time . time ( ) - start_time def test ( ) : print '开始执行test' time . sleep ( 3 ) print 'test执行结束' timer ( test ) ''' 开始执行test test执行结束 函数执行时间为 3.00332999229 ''' 4

MapReduce: Simplied Data Processing on Large Clusters (译)

帅比萌擦擦* 提交于 2020-02-27 18:18:03
MapReduce: Simplied Data Processing on Large Clusters (译) 摘要: MapReduce是一个编程模型以及用来处理和生成大数据集的一个相关实现。用户通过描述一个map函数,处理一组key/value对进而生成一组key/value对的中间结果,然后描述一个reduce函数,将具有相同key的中间结果进行归并。正如论文所表明的,很多现实世界中的任务都可以用这个模型来表达。 以这种函数式风格写出来的程序在一个由普通机器组成的集群上自动的进行并行化和执行。由一个运行时系统来关注输入数据的划分细节,在机器集合上的程序执行调度,处理机器失败以及管理所需要的机器间的通信。这就允许那些没有并行分布式系统编程经验的程序员很容易的使用大型分布式系统的资源。 我们的MapReduce实现运行在一个有很多普通机器组成的集群上,而且具有高扩展性:一个典型的MapReduce计算将会在一个数千台机器的集群上处理很多T的数据。对于程序员来说,这个系统很好用,目前已经有数百个MapReduce程序实现,在google的集群上每天有上千个MapReduce job在跑。 1.导引 在过去的五年来,作者和google的其他工程师已经实现了数百了用于特殊目的在大量原始数据(比如爬虫爬的文档,web访问日志等等)上进行的运算。为了计算各种类型的衍生数据:比如倒排索引

练习2-11 计算分段函数[2] (10分)

那年仲夏 提交于 2020-02-27 14:54:02
本题目要求计算下列分段函数f(x)的值: 注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。 输入格式: 输入在一行中给出实数x。 输出格式: 在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。 输入样例1: 10 输出样例1: f ( 10.00 ) = 3.16 输入样例2: -0.5 输出样例2: f ( -0.50 ) = -2.75 代码 # include <stdio.h> # include <math.h> int main ( ) { double x ; double fx ; scanf ( "%lf" , & x ) ; if ( x >= 0 ) fx = sqrt ( x ) ; else fx = ( x + 1 ) * ( x + 1 ) + 2.0 * x + 1.0 / x ; printf ( "f(%.2f) = %.2f" , x , fx ) ; return 0 ; } 来源: CSDN 作者: Armorsilly 链接: https://blog.csdn.net/qq_35891520/article/details/104535148

C++函数的理解思考

不羁岁月 提交于 2020-02-27 14:19:28
函数指针调用方式 void testmy(int k) { cout << "testzhixing " <<k << endl; } int _tmain(int argc, _TCHAR* argv[]) { typedef void(*testmy1)(int);// 定义函数指针相当于一个新的 struct testmy1 p; // 声明指针变量 testmy(1); p = &testmy; p(1); //---调用方式二 testmy(2); //--调用3 void (*ptr)(int); // 声明函数指针 ptr = testmy; ptr(3); } 这种方式一般调用dll用的多 typedef void(*testmy1)(int);// 定义函数指针相当于一个新的 struct testmy1 p; // 声明指针变量 关于这种方式 参考函数指针 为什么要 (*testmy1) 为什么前面加个* 这个确实不是狠明白 但是这种结构的定义反汇编也没有代码,先这样写着把 还有函数testmy的调用是 test() testmy是这个函数的首地址 函数调用汇编相当于call 就是跳到testmy函数地址里面执行 当然首地址肯定是保护堆栈现场的操作 不可能直入正题 来源: https://www.cnblogs.com/xuexidememeda/p

20200226----python学习第16天

孤人 提交于 2020-02-27 12:53:22
今日内容   模块基础知识   time/datetime   json/picle   shutil   logging   其他 内容回顾与补充   (1)模块(类库):内置/第三方模块/自定义   面试题:列举常用内置模块:json/time/os/sys   (2)定义模块   定义模块时可以把一个py文件或一个文件夹(包)当作一个模块,以方便于以后其他py文件的调用。   对于包的定义:     py2:文件夹中必须有--init--.py     py3:不需要--init--.py   推荐大家以后写代码时,都要加上此文件。 模块的调用 示例一  #lizhongwei.py#/urn/bin/env python#-*- coding:utf-8 -*-def show(): print('123')def func(): passprint(456) 示例二   #导入模块,加载模块中所有的值到内存中import lizhongweiprint('你好')#调用模块中的函数lizhongwei.fun()#导入模块from lizhongwei import func,showfrom lizhongwei import funcfrom lizhongwei import showfrom lizhongwei import *func()#导入模块from

MFC重绘原理的关键理解

≡放荡痞女 提交于 2020-02-27 12:17:13
// ====================Windows重绘消息与函数========================== 得到桌面窗口的句柄,然后再绘图 HWND GetDesktopWindow(VOID); 当需要更新或重新绘制窗口的外观时,应用程序就会发送WM_PAINT消息对窗口进行重新绘制。 Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘。 UpdateWindow只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。 RedrawWindow()则是具有Invalidate()和UpdateWindow()的双特性。声明窗口的状态为无效,并立即更新窗口,立即调用WM_PAINT消息处理。 调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不一定在队列头部,而 调用UpdateWindow会使WM_PAINT消息马上执行的,绕过了消息队列。 如果你调用Invalidate之后想马上更新屏幕

JavaScript 中的 this 关键字

我的梦境 提交于 2020-02-27 07:03:12
JavaScript 中的 this 关键字是一个非常重要的语法点,在开发过程中,我们会经常用到它。 学习 this 之前,我们先思考一个问题: JavaScript 中为什么会有 this ? 一、为什么要用 this? 1、一个通俗的例子 我们看一段话: 从前有座山 山上有座庙被叫作神庙 神庙里有很多小和尚 小和尚们非常喜欢这座神庙 所以小和尚们都经常挑水到神庙 读完这段话我们发现了一些问题: 这段话里出现了很多次 神庙 不符合我们说话和描述的习惯 词语很累赘 所以,我们经常会这样干: 从前有座山 山上有座庙被叫作神庙 这里有很多小和尚 小和尚们非常喜欢这里 所以小和尚们都经常挑水到这里 只在说话的开始,保留第一个名词,后面重复用到时,都用 这 来代替。现在读起来就顺口多了,其实写代码也是一样的。 现在我们把上面的例子转化为代码语言。 2、用代码语言来描述 假设我们有个叫作 person 的对象: const person = { name : 'Deepspace' , age : 23 , phone : '1234567890' , sayHi : function ( ) { // ... } , sayBye : function ( ) { // ... } } ; 这个对象有 name 、 age 和 phone 三个属性,有 sayHi 和 sayBye

构造函数为什么不能为虚函数 & 基类的析构函数为什么要为虚函数

亡梦爱人 提交于 2020-02-27 03:24:15
一、构造函数为什么不能为虚函数 1. 从存储空间角度,虚函数相应一个指向vtable虚函数表的指针,这大家都知道,但是这个指向vtable的指针事实上是存储在对象的内存空间的。问题出来了,假设构造函数是虚的,就须要通过 vtable来调用,但是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。 2. 从使用角度,虚函数主要用于在信息不全的情况下,能使重载的函数得到相应的调用。构造函数本身就是要初始化实例,那使用虚函数也没有实际意义呀。所以构造函数没有必要是虚函数。虚函数的作用在于通过父类的指针或者引用来调用它的时候可以变成调用子类的那个成员函数。而构造函数是在创建对象时自己主动调用的,不可能通过父类的指针或者引用去调用,因此也就规定构造函数不能是虚函数。 3. 构造函数不须要是虚函数,也不同意是虚函数,由于创建一个对象时我们总是要明白指定对象的类型,虽然我们可能通过实验室的基类的指针或引用去訪问它但析构却不一定,我们往往通过基类的指针来销毁对象。这时候假设析构函数不是虚函数,就不能正确识别对象类型从而不能正确调用析构函数。 4. 从实现上看,vbtl在构造函数调用后才建立,因而构造函数不可能成为虚函数从实际含义上看,在调用构造函数时还不能确定对象的真实类型(由于子类会调父类的构造函数);并且构造函数的作用是提供初始化,在对象生命期仅仅运行一次