函数封装

GRE协议

北城余情 提交于 2020-01-30 07:10:40
一、 GRE(Generic Routing Encapsulation) 通用路由封装 是对某些网络层协议(如: IP , IPX , Apple Talk等)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。 GRE可以实现多协议的本地网通过单一协议的骨干网传输的服务,扩大了网络的工作范围,包括那些路由网关有限的协议,如IPX包最多可以转发16次(即经过16个路由器),而在一个Tunnel连接中看上去只经过一个路由器将一些不能连续的子网连接起来。 GRE协议实际上是一种承载协议(Carrier Protocol),它提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络中传输,异种报文传输的通道称为tunnel。 Tunnel是一个虚拟的点对点的连接,它提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封。 IP协议既可以作为传递协议(Delivery Protocol),也可以作为负载协议(Payload Protocol),在TCP/IP网络中,IP协议一般是作为传递协议,封装和传输其他协议的报文。在最简单的情况下,系统接收到一个需要封装和路由的数据报,称之为负载报文。这个有效报文首先被GRE封装,称之为GRE报文,这个报文接着被封装在IP协议中,然后完全由IP

Web阶段性技术文档(三)

眉间皱痕 提交于 2020-01-29 05:31:03
一、Ajax设置请求和接收响应 1 、JS设置任意请求 一个http请求分为四个部分 请求行,请求头,回车,请求体 设置请求的四个部分 (第三部分为回车): 第一部分 request.open('get', '/xxx') 第二部分 request.setRequestHeader('content-type','x-www-form-urlencoded') 第四部分 request.send('a=1&b=2') request.setRequestHeader()方法需要注意的是此方法必须 在 open() 方法和 send() 之间调用 。 XMLHttpRequest.setRequestHeader() 另外需要注意的是,如果设置西请求方法为get 并且设置了请求体(第四部分),在谷歌浏览器中看不到请求体,不报错但是不显示 示例代码: myButton.addEventListener("click",(e)=>{ let request = new XMLHttpRequest(); request.open('POST','/xxx')// 配置request // 设置第二部分 request.setRequestHeader("mataotao","123123xxx") request.setRequestHeader('content-type','x

说说接口封装

淺唱寂寞╮ 提交于 2020-01-29 03:49:50
今天给同事封装了一个接口,说起接口封装的事情,其实其实很有的聊。很多时候,说一个服务好,一个服务烂,实际上都是在吐槽服务队外暴露的接口好坏。不管什么语言,封装接口,抽象起来,就是由一个函数名,若干个参数,若干个返回值组成的。封装的好坏,就在这几个上面。 函数名 首先是函数名。函数名的好坏很明显,我的观点,是否简单,不重复。比如在一个User类中你封装一个方法,叫做findUser。我就觉得很啰嗦了。你使用的时候会这样使用 User::findUser($id); 那又是何必呢?为什不直接叫做find呢? User::find($id); 我记得前段时间在网上还看到一篇文章,你见过哪些奇葩的代码。其中就有一些有趣的函数名。在我的视角看来,下面的函数名都很奇葩: function weizhi() // 中文拼音 function getuserinfo() // 单词和单词没用大小写分割 function getUserIsEnable() // 明明是bool判断却用get开头 基本上,我们选择使用 动词 或者 动词+名词 或者 动词+名词 + 副词 比如 function find() function getUser() function getUserByName() 我觉得这些都是很符合人性的函数名。 参数 一句话, 参数尽量不要封装。。。尽量不要太多。。。

面向对象的三大特性:继承、封装、多态

让人想犯罪 __ 提交于 2020-01-28 17:39:28
一、python面向对象的三大特性:继承、封装、多态   封装:把很多数据封装到一个对象中。把固定功能的代码封装到一个代码代码块、函数、对象、打包成模块。这都属于封装的思想。具体的情况具体分析,比如,你写了一个很NB的函数,那这个也可以被称之为封装。在面向对象思想中,是把一些看似无关紧要的内容组合到一起统一进行存储和使用,这就是封装。   继承:子类可以自动拥有父类中除了私有属性外的其他所有内容。先有父类再有子类。在python中实现继承非常简单,在声明类的时候,在类名后面添加一个小括号,就可以完成继承关系。   多态:同一个对象,多种形态。 二、封装 封装:将内容封装到某个地方,以后再去调用被封装在某处的内容 # 创建类 class Foo(): def __init__(self,name,age): self.name = name self.age = age def detail(self): print(self.name) print(self.age) # 根据类Foo创建对象 # 自动执行Foo类的__init__方法 obj1 = Foo("agen",15) print(obj1.name) # 直接调用obj1对象的name属性 print(obj1.age) # 直接调用obj1对象的age属性 # 通过self间接调用被封装的内容 obj1.detail

什么是面向对象

人盡茶涼 提交于 2020-01-28 16:21:03
一、面向对象与面向过程的区别 面向过程 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象 是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 举个例子: 如果要实现一个五子棋游戏时 面向过程 的设计思路就是首先分析下棋的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出结果。最后把上面每个步骤按照顺序来编程实现。 面向对象 的设计则是从另外的思路来解决问题。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的,都是放置棋子 2、棋盘系统,负责绘制画面 3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。 可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。 由此可见

ace.js初始化函数封装

我们两清 提交于 2020-01-28 07:43:50
ace介绍 ACE 是一个开源的、独立的、基于浏览器的代码编辑器,可以嵌入到任何web页面或JavaScript应用程序中。ACE支持超过60种语言语法高亮,并能够处理代码多达400万行的大型文档。ACE开发团队称,ACE在性能和功能上可以媲美本地代码编辑器(如Sublime Text、TextMate和Vim等)。 下载编译 git clone https://github.com/ajaxorg/ace.git npm install node ./Makefile.dryice.js 初始化函数封装示例 < !DOCTYPE html > < html lang = "en" > < head > < meta charset = "UTF-8" > < title > Title < / title > // 必须给包裹元素设置宽高 < style > #editor{ width : 600px ; height : 300px ; } < / style > < / head > < body > < div id = "editor" > < / div > < script src = "https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.6/ace.js" > < / script > < script src =

封装-python

北战南征 提交于 2020-01-28 06:44:17
六 封装 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子。但其实这种理解相当片面 首先我们要了解 回到顶部 6.1 要封装什么 你钱包的有多少钱(数据的封装) 你的性取向(数据的封装) 你撒尿的具体功能是怎么实现的(方法的封装) 回到顶部 6.2 为什么要封装 封装数据的主要原因是: 保护隐私 (作为男人的你,脸上就写着:我喜欢男人,你害怕么?) 封装方法的主要原因是:隔离复杂度(快门就是傻瓜相机为傻瓜们提供的方法,该方法将内部复杂的照相功能都隐藏起来了,比如你不必知道你自己的尿是怎么流出来的,你直接掏出自己的接口就能用尿这个功能) 你的身体没有一处不体现着封装的概念:你的身体把膀胱尿道等等这些尿的功能隐藏了起来,然后为你提供一个尿的接口就可以了(接口就是你的。。。,),你总不能把膀胱挂在身体外面,上厕所的时候就跟别人炫耀:hi,man,你瞅我的膀胱,看看我是怎么尿的。还有你的头把你的脑子封装到了脑壳里,然后提供了眼睛这个接口.... 提示:在编程语言里,对外提供的接口(接口可理解为了一个入口),就是函数,称为接口函数,这与接口的概念还不一样,接口代表一组接口函数的集合体。 回到顶部 6.3 封装分为两个层面 封装其实分为两个层面,但无论哪种层面的封装,都要对外界提供好访问你内部隐藏内容的接口(接口可以理解为入口

将webkit内核封装为duilib的浏览器控件

半腔热情 提交于 2020-01-27 23:50:33
转载请说明出处,谢谢~~ 原本的duilib是自带浏览器控件的,但是使用了IE内核,我在做仿酷狗音乐播放器时,在右侧乐库要用到浏览器控件,而我使用自带的IE控件却发现了不少缺点,这也是duilib一直没有解决的,编程群里的朋友也反映IE控件不好用。而目前最常用的浏览器内核一个是IE内核,另一个是webkit内核。 先简单介绍一下这个webkit内核 WebKit 是一个 开源 的 浏览器 引擎,与之相对应的引擎有 Gecko (Mozilla Firefox 等使用)和 Trident (也称 MSHTML , IE 使用)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于 Safari , Dashboard , Mail 和其他一些 Mac OS X 程序。WebKit 前身是 KDE 小组的 KHTML,WebKit 所包含的 WebCore 排版引擎 和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的 源码 结构、极快的 渲染 速度。 Apple 将 KHTML 发扬光大,推出了装备 KHTML 改进型 WebKit 引擎的 浏览器 Safari。 WebKit 内核在手机上的应用也十分广泛,例如 Google 的手机 Android 、 Apple

Python类与对象---封装与继承

巧了我就是萌 提交于 2020-01-27 11:53:12
#一.Python类的封装机制: # Python 并没有提供 public、private 这些修饰符。为了实现类的封装,Python 采取了下面的方法: # 1.默认情况下,Python 类中的变量和方法都是公有(public)的,它们的名称前都没有下划线(_); # 2.如果类中的变量和函数,其名称以双下划线“__”开头,则该变量(函数)为私有变量(私有函数),其属性等同于 private。 #二、Python类的继承机制: # 1.如果类没有显式指定继承自哪个类,则默认继承 object 类 # 2.(object 类是 Python 中所有类的父类,即要么是直接父类,要么是间接父类)。 # 3.另外,Python 的继承是多继承机制(和 C++ 一样),即一个子类可以同时拥有多个直接父类。 # 4.继承是相对子类来说的,即子类继承自父类;而派生是相对于父类来说的,即父类派生出子类。 # 5.Python 支持多继承(C++也支持多继承)。 # 6.和单继承相比,多继承容易让代码逻辑复杂、思路混乱,一直备受争议,中小型项目中较少使用,后来的 Java、C#、PHP 等干脆取消了多继承。 # 7.根据子类继承多个父类时这些父类的前后次序决定,即排在前面父类中的类方法会覆盖排在后面父类中的同名类方法。 # 8.虽然 Python 在语法上支持多继承,但逼不得已

面向对象-封装

血红的双手。 提交于 2020-01-27 01:11:10
面向对象-封装 什么是封装 封装是针对某一些数据进行,压缩、包装成一个使用方便、安全的实例 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使程序员实现所需级别的抽象。 封装使用访问修饰符来实现。一个访问修饰符定义了一个类成员的范围和可见性。 封装都有哪些封装 类就是一个封装 属性封装 函数封装 封装的注意事项 要搞清楚封装的这个目标的一个访问范围 封装的数据都有哪些 访问修饰符 什么是访问修饰符 访问修饰符就是用来设置控制封装的这个目标的权限范围 权限范围:这个目标可以被哪些对象在什么地方可以访问到这个目标的数据 访问修饰符都有哪些 public public访问修饰符允许一个类将其成员变量和成员函数暴露给其他的函数和对象。任何公有成员可以被外部的类访问。所有类或成员,任何代码均可访问该项 访问权限最大 意味着最不安全 范围:类自己、同一个程序集、同一个项目中、和自己有血缘关系的类 private private访问修饰符允许一个类将其成员变量和成员函数对其他的函数和对象进行隐藏。只有同一个类中的函数可以访问它的私有成员。即使是类的实例也不能访问它的私有成员。 类的成员的默认访问修饰符是private 访问权限最小