Python 第五天

开放封闭原则

开发:对于未存在的开放

封闭:对于已存在的代码封闭

装饰器

1、装饰器就是一个函数,至少2层

2、

    执行auth函数,被装饰的函数作为参数auth(foo)

    auth函数的返回值,赋值给被装饰的函数的函数名

@auth

def foo():

    pass

3、动态参数,可以装饰含有n个参数的函数

4、函数返回值

5、多装饰器

6、多层装饰器。

 

def Filter(a1,a2):

    def outer(main_func):

        def wrapper(request,kargs):

              

            print a1

              

            main_result = main_func(request,kargs)

              

            print a2

 

return main_result

              

        return wrapper

    return outer

      

@Filter(f5, f6)

def Index(request,kargs):

    print 'index'

 

 

 

1、装饰器是一个函数,至少2层

2、

执行auth函数,被装饰的函数作为参数auth(foo)

auth函数的返回值,赋值给被装饰的函数的函数名

@auth

def foo():

pass

 

3、动态参数,可以装饰含有n个参数的函数

4、函数返回值

5、多装饰器 --> 盒子模型

6、至少3层,3层的如何使用?

@w1

1、执行w1函数

2、将w1函数的返回值赋值给被装饰的函数的函数名

@w2(arg)

1、执行w2函数,得到返回值,ret

2、创建装饰器,@ + ret结合;@ret

3、。。。

1、执行ret函数

2、将ret函数的返回值赋值给被装饰的函数的函数名

远程模块  paramiko

模块定义

    实现某功能,且是实现的所有代码的集合

存在方式

    1、py文件

    2、文件夹

 

 

查看Python默认寻找模块位置

sys.path

自动添加文件所在路径到path列表

 

普通的文件夹不能成为模块,需要有__init__.py ,才能被导入,才有可能成为模块。这个文件一般为空

 

 

 

 

1、加密 

2、装饰器

3、商品分类

configpres

 

转载于:https://www.cnblogs.com/lige-python/p/5002364.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式队列编程:模型、实战

介绍 作为一种基础的抽象数据结构,队列被广泛应用在各类编程中。大数据时代对跨进程、跨机器的通讯提出了更高的要求,和以往相比,分布式队列编程的运用几乎已无处不在。但是,这种常见的基础性的事物往往容易被忽视,使用…

“睡服”面试官系列第十篇之module的语法(建议收藏学习)

目录 1.概述 2. 严格模式 3. export 命令 4. import 命令 5. 模块的整体加载 6. export default 命令 7. export 与 import 的复合写法 8. 模块的继承 9. 跨模块常量 10. import() 10.1简介 11适用场合 11.1按需加载 11.2条件加载 11.3动态的模块路径 11.4注意…

奇怪的剪贴板

下午碰到一个奇怪事情,同一个局域网内的不同主机的剪贴板内容竟然可以共享。还不知道是什么原因导致的。 如下图,在主机A上复制一个字符串。 或者在主机A上复制一张图。(文件也可以) 然后在主机B上分别粘贴 是不是很神奇~~&#x…

“睡服”面试官系列第十一篇之module加载实现(建议收藏学习)

目录 1. 浏览器加载 1.1传统方法 1.2加载规则 2. ES6 模块与 CommonJS 模块的差异 3. Node 加载 3.1概述 3.2内部变量 4ES6 模块加载 CommonJS 模块 5CommonJS 模块加载 ES6 模块 6循环加载 6.1CommonJS 模块的加载原理 6.2CommonJS 模块的循环加载 7ES6 模块的循…

两种IO模式:Proactor与Reactor模式

在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是…

nGrinder性能测试平台搭建(LVS压力测试)

1、 nGrinder是什么 nGrinder是一个免费的、开放源代码的Web性能测试平台。运行在应用中间件服务器中运行。它由一个控制端和多个代理端组成。通过控制端(浏览器访问)建立测试场景,然后通过分发到代理端进行压力测试,是一个分布式…

“睡服”面试官系列第十三篇之函数的扩展(建议收藏学习)

目录 1. 函数参数的默认值 1.1基本用法 1.2与解构赋值默认值结合使用 1.3参数默认值的位置 1.4函数的 length 属性 1.5作用域 1.6应用 2. rest 参数 3. 严格模式 4. name 属性 5. 箭头函数 5.1基本用法 5.2使用注意点 5.3嵌套的箭头函数 6. 双冒号运算符 7. 尾…

如何快速的解决Maven依赖冲突

为什么会出现依赖冲突 首先要说明Maven的依赖管理,具体的可以参考这边 Maven学习——依赖管理 这篇文章,maven在依赖冲管理中有一下几个原则。 依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId, artifactId, version&…

前端学习(1682):前端系列实战课程之让蛇改变方向

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>游戏初始化界面</title><style>body {ma…

第十二周学习总结

信息安全系统设计基础第十二周学习总结 【学习时间&#xff1a;8 小时】 【学习内容&#xff1a;process文件夹中的代码理解和执行、故障排除】 一、代码理解 1.env文件夹-environ.c代码 #include <stdio.h> #include <stdlib.h> int main(void) { printf("PA…

maven依赖仲裁

转载自&#xff1a;http://blog.csdn.net/wanyanxgf/article/details/6617403

前端学习(1683):前端系列实战课程之让蛇吃食物变长

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>游戏初始化界面</title><style>body {ma…

cdoj 1246 每周一题 拆拆拆~ 分解质因数

拆拆拆~ Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1246 Description 给你一个数x&#xff0c;你有两个操作 1.分解质因数&#xff0c;如果x是一个合数&#xff0c;那么就将x分解质因数&#xff0c;然后进入操作2&#xff0c;…

当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系

1.DNS域名解析&#xff1a;浏览器缓存、系统缓存、路由器、ISP的DNS服务器、根域名服务器。把域名转化成IP地址。2.与IP地址对应的服务器建立TCP连接&#xff0c;经历三次握手&#xff1a;SYN&#xff0c;ACK、SYN&#xff0c;ACK3.以get&#xff0c;post方式发送HTTP请求&…

前端学习(1684):前端系列实战课程之判断游戏结束

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>游戏初始化界面</title><style>body {ma…

swift 用协议实现代理传值功能

1.功能简介RootViewController中用个lable和一个按钮&#xff0c;点击按钮跳转到模态窗口。在模态窗口中有个TextField和一个按钮&#xff0c;输入文字点击关闭模态按钮后跳转到RootViewController&#xff0c;并改变其label为输入的值。2 .实现思路ModelViewController中定义一…

前端学习(1685):前端系列实战课程之设置难度

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>游戏初始化界面</title><style>body {ma…

git 学习

参考 http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#继续阅读 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 常用git 命令 git initgit add <file>git commit -am "XXXX"git remote add origin g…

Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)

linux 如何显示一个文件的某几行(中间几行) 【一】从第3000行开始&#xff0c;显示1000行。即显示3000~3999行 cat filename | tail -n 3000 | head -n 1000 【二】显示1000行到3000行 cat filename| head -n 3000 | tail -n 1000 *注意两种方法的顺序 分解&#xff1a; tail -…