重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这里来给大家演示一下,函数的定义或构造,并调用函数来实现封装后的效果。
创新互联专注于施秉企业网站建设,响应式网站,商城系统网站开发。施秉网站建设公司,为施秉等地区提供建站服务。全流程按需定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
首先我们来看看想实现下面的这个效果,如果不使用函数应该怎么实现。
以上两种返回结果都是1-9这几个数字。
以上两种方法,第一种代码重复率太高,代码美观效果太差,虽然能实现效果,但是因为数量比较少,还能手工打出来这几行代码,如果是打印1-100000就很难实现了。这时候for循环还是可以实现的,但是for循环只能实现类似的数字和变量循环,无法进行复杂的功能开发。鉴于此,函数这个概念就被python引入了,下面先来看看函数是怎么实现上面的效果的,还是两种方法。
这时候如果想实现上面的打印结果就直接使用函数名+小括号调用函数就可以了,这种类型的语法,不仅可以反复使用,而且封装后的代码更美观。
通过关键字def来创建函数,def的作用是实现python中函数的创建
函数定义过程:
函数名+()小括号执行函数
函数体内对全局变量只能读取,不能修改
局部变量,无法在函数体外使用
python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
将函数作为参数传入,这样的函数称为高阶函数。 函数式编程就是指这种高度抽象的编程范式。
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。如下所示:
map(fun, lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表返回。
定义一个匿名函数并调用,定义格式如--lambda arg1,arg2…:表达式
reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
闭包的定义?闭包本质上就是一个函数
如何创建闭包?
如何使用闭包?典型的使用场景是装饰器的使用。
global与nonlocal的区别:
简单的使用如下:
偏函数主要辅助原函数,作用其实和原函数差不多,不同的是,我们要多次调用原函数的时候,有些参数,我们需要多次手动的去提供值。
而偏函数便可简化这些操作,减少函数调用,主要是将一个或多个参数预先赋值,以便函数能用更少的参数进行调用。
我们再来看一下偏函数的定义:
类func = functools.partial(func, *args, **keywords)
我们可以看到,partial 一定接受三个参数,从之前的例子,我们也能大概知道这三个参数的作用。简单介绍下:
总结
本文是对Python 高阶函数相关知识的分享,主题内容总结如下:
表示一个功能,函数定义着是提供功能的人,函数调用者是使用功能的人。
print:打印功能,将括号中的内容,显示到终端。
将括号中的内容显示在控制台.
input:输入功能,从终端中获取输入的信息,存到程序变量当中
作用:将用户输入的内容赋值给变量
第一个字符必须是字母表中字母或下划线 _ 。
标识符的其他的部分由字母、数字和下划线组成。
标识符对大小写敏感。
python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:
单纯的理解“python中的函数是一等公民”这句话,可能包含几层意思:
正确的理解是:第1点和第2点,不包含第3点的意思。
python中的函数是一等公民,重点想表述的是: 在python世界人人平等 。
人人平等的世界,至少应该包含两层意思:1. 身份地位平等; 2. 行使的权利平等。
打印结果是:
从上面的打印结果中可以看出:
1.Python 程序中的所有数据都是某个类的实例,因而是一个对象;
2.类本身也是一个对象。int, float, str, list, dict, set, fuction, module, NoneType, object, type等,这些类都是type类的实例,也是一个对象;
3.object类是所有类的基类
4.object是顶级父类
函数function和其他公民一样,他们的都有一个共同的身份:对象 。
在c++和java里,数据是数据,动作是动作,他俩的结合是类(class)。对于python,数据是数据,动作也可以是数据,这个牛逼的数据叫做对象object。
对于函数function来讲,既可以安静的做一个数据,又可以优雅的执行动作。
Python 官方文档里这样解释 对象(object) 的含义:Python 中的对象是对数据的抽象,Python 程序中所有数据都是由对象或者对象间的关系来表示的。每个对象都有各自的编号、类型和值。
两个祖先(a和b)占了相邻的两块内存,一个可以与它的“后代”共用内存,一个却只能让“后代”另立门户;当它们走完自己的生命周期后,b会马上被当垃圾回收,内存地址遗产被剥夺,然而a却形灭而实存,荫庇后世。
Python为这些对象倾斜资源,也就是为某种阶层固化提供了合法性。划分的依据是因为它们比较常用,共用内存就意味着减少开支,提高内存使用效率。
这就是Python有趣的地方了,一面是全体公民,一面是特权种族,组成了看似矛盾的二元对立结构。
参考:
定义:
def 函数名(形参1,形参2='初始定义的内容'):
函数中执行的内容
调用:
函数名(实参1)或函数名(形参2=实参2,形参1=实参1)或函数名(实参1,实参2)