Python基础笔记(四)
1. 返回函数与闭包
如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)
def getSum(*args):def add():result = 0for i in args:result = result + ireturn resultreturn addmyFun = getSum(1, 2, 3)print(myFun())
# 6
2. 装饰器(decorator)
装饰器是对函数的一种包装,它使函数的功能得到扩展,但又不用修改函数内部的代码;一般用于增加函数执行前后的行为。
下面的例子演示了在一个函数执行前打印当前时间,执行后打印执行完成的提示:
import timedef myDecorator(func):def myWrapper(*args, **kw):print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))f = func(*args, **kw)print(func.__name__, "function is called.")return freturn myWrapper@myDecorator
def hello():print("hello world")hello()
# 2019-04-09 11:38:29
# hello world
# hello function is called.
下面的例子演示了在一个函数返回字符串后,在该字符串前后加上HTML标签:
def setTag(tag):def myDecorator(func):def myWrapper(*args, **kw):beginTag = "<" + tag + ">"endTag = "</" + tag + ">"return beginTag + func(*args, **kw) + endTagreturn myWrapperreturn myDecorator@setTag("div")
def hello(name):return "hello, " + nameprint(hello("wayne"))
# <div>hello, wayne</div>
3. 偏函数(partial function)
偏函数是通过将一个函数的部分参数预先绑定为特定值,从而得到一个新的具有较少可变参数的函数。
下面的例子用偏函数实现了一个转换二进制的函数int2
import functoolsint2 = functools.partial(int, base=2)print("%d %d" % (int("1010101"), int2("1010101")))
# 1010101 85
partial接收三个参数,形式为:partial(func, *args, **keywords)
,上面演示了只提供**keywords
的情况,下面的例子演示了只提供*args
的情况:
import functoolsmax2 = functools.partial(max, 10)print(max2(5, 6, 7))
# 等效于max(10, 5, 6, 7)
# 10
4. 模块
编写模块的一般格式如下:
test1.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-'my test1 module'__author__ = "Wayne"import sysdef init():print(sys.argv)if __name__ == '__main__':init()
当通过命令行的方式运行该模块文件时,Python解释器把一个特殊变量__name__
置为__main__。
sys.argv返回的是一个list,执行python3 test1.py
,那么sys.argv得到的list是['test1.py']
;执行python3 test1.py A B
,那么sys.argv得到的list是['test1.py', 'A', 'B']
。
转载于:https://www.cnblogs.com/CoderWayne/p/10873874.html
Python基础笔记(四)相关推荐
- Python基础笔记(四)切片、列表生成式、迭代
切片 切片操作是用来取list的前N个元素,当然我们可以用循环来实现这个操作 def qu(l,num):x=0L2=[]while x<num: L2.insert(x,L[x]) x=x+1 ...
- Python 基础笔记
Python 基础笔记 内置函数 print() 打印输出 type() 数据类型查询 isinstance() 判断数据是否是已知类型 input() 接受键盘输入 range() 函数 forma ...
- python基础笔记(二)
<黑马>python笔记~二 前言 一.配套视频 二.python基础初级 三.python基础中级 四.python基础高级 目录 python基础中级(列表.元组.字典.字符串) 01 ...
- Python基础(四)--字典与集合
Python基础(四)--字典与集合 1 字典 1.1 什么是字典 字典提供的是一种映射存储的方式.字典分为两个部分,一个是键(key),一个是key所关联的值(value).,一个键关联(或绑定)一 ...
- Python基础 笔记(一) Python的介绍
Python基础 笔记(一) Python的介绍 您好! 欢迎来到木易巷! 接下来,让我们一起来了解Python,走进Python~ 1.编程语言 编程语言(programming language) ...
- Python基础——第四章:Python循环语句
前言 本文是根据黑马程序员Python教程所作之笔记,目的是为了方便我本人以及广大同学们查漏补缺. 不想做笔记直接来我的频道.当然啦,自己的笔记才是最好的哦! PS:感谢黑马程序员! 教程链接:黑马程 ...
- python基础笔记,超详细,包含面向对象基础,爬虫实战【持续更新中...】
前言: 本笔记中的函数和方法同义,面向python3 本笔记部分概念及代码由newbing搜集整理得出 本笔记适合有一定其他编程语言基础的同学,因为笔记中省略了部分基础概念(比如整型,浮点型等基本数据 ...
- Py函数直接传入root是啥意思_阿里云python课程笔记(四):函数amp;类和对象
接阿里云python课程笔记(三):数据结构 我们讨论一下python中的深拷贝和浅拷贝 dic1 = {'user': 'lsgogroup', 'num': [1, 2, 3]}# 引用对象dic ...
- 霍格沃兹测试开发学社技术学习笔记之——Python基础笔记
# 阶段十一-Python语言和测试框架(1) ## 1.pycharm环境变量配置和安装 ## 2.基础数据类型 数字 字符串 ## 3.运算符 字符串算数运算符 比较运算符 赋值运算符 逻辑运算符 ...
- 廖雪峰Python基础笔记
python 1.第一个python程序 交互模式(>>>)退出用exit() 打印使用print()函数,打印的内容可以用单引号或者双引号括起来,但是不能够混用 命令行模式,可以输 ...
最新文章
- java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.init([Ljava
- ExtJS4.2学习(9)——MVC
- boost::mp11::mp_invoke_q相关用法的测试程序
- HDU3662(求三维凸包表面的多边形个数,表面三角形个数,体积,表面积,凸包重心,凸包中点到面的距离)
- php cdi_Swing应用程序中的CDI事件将UI和事件处理分离
- tf.app.flags和tf.app.run的使用
- [LeetCode] 234. Palindrome Linked List_Easy tag: Linked List
- python3 threading.lock_python3爬虫lock如何有序的处理多线程?
- Leetcode题目:House Robber
- hp eva 4400存储配置手记
- Windows8 Metro应用开发之C#(3)- 数据控件ListView、GridView、FlipView
- Java 实战篇-JDK9新特性
- RemObjects Remoting SDK-SEO狼术
- IPHONE屏幕大小,分辨率解析
- ipad html兼容问题,如何处理ipad safari CSS 样式的兼容性?_html/css_WEB-ITnose
- 040_初识 web 前端 HTML 超文本标记语言
- 新辰:一位90后的电商梦 自述创业失败的教训
- Charmer--viv【并查集】【最小生成树】
- 神经网络模型无法正常工作时我们应该做什么(系列)——数据标准化处理(Normalize)
- 关于Lock锁用法的详细讲解(案例驱动,手把手教学)
热门文章
- 【C练习】两个已经从小到大的数组合并成为一个从小到大排序的数组
- Java实现FastDFS文件上传、查询、下载和删除
- String、StringBuffer、StringBuilder三者的区别
- VS2013打开项目出现未找到与约束contractname 匹配的导出的错误
- SqlServer中Group By高级使用--Inner Join分组统计
- C++ Windows时间函数 QueryPerformanceCounter()与QueryPerformanceFrequency()
- Proto3 Any与Oneof(转载)
- 33. 把数组排成最小的数(C++版本)
- jenkins忘记密码和常用插件的下载
- linux字符串处理命令,linux 命令之 字符串处理命令——paste