python函数的高级应用详解

前言

函数是我们所熟知的,在python中函数的定义格式如下:

def 函数名(形式参数):

​ 函数体

​ 函数的封装就是实现代码块的复用,python内置了一些基础的函数,开发者也可以自己定义函数,函数只能先定义,再进行调用。

一、函数调用的步骤

1、程序遇到函数调用的情况时,暂停执行

2、将实际参数值传递给函数参数

3、执行函数体语句

4、返回值并继续向下执行

二、参数的打包和解包

打包

​ 参数的打包指的是多个参数可以同时处理,也叫可变长度参数, 可变长度参数在定义函数时主要有两种形式*parameter和**parameter,前者用来接受任意多个参数并将其放在一个元组当中,后者接收多个关键参数组成键值对并将其放在字典当中。

打包为元组

def demo(*p):
  print(p)
demo(1,2,3,4,5,6)
#结果
(1,2,3,4,5,6)

打包为字典

def demo(**p):
  print(p)
demo(x=1,y=2,z=3)
#结果
{'x':1,'y':2,'z':3}

#参数的打包就是将形参设为*参数名形式,实参为多个参数,这是后会将多个参数处理为元组或字典的可迭代对象,是把个体打包为整体。

解包

​ 与参数的打包相对应,参数的解包同样也有s和**s两种形式,调用含有多个位置参数的函数时,可以使用列表,元组,集合等可迭代对象作为实参,在实参名前面加一个,Python会自动对其进行解包,并把序列中的值分别传递给多个形参变量。

def demo(a,b,c,d):
  print(a+B*c/d)
list1=[1,2,3,4]
demo(*list1)
#结果
2.5

​ 如果实参是一个字典,可以使用**参数名的形式对其进行解包操作,会把字典转换成为类似关键参数的形式进行参数传递。对于这种形式的序列解包,要求实参字典中的所有键必须是函数形参的名称,或者与函数中两个型号的可变长度参数相对应。

s={'a':1,'b':2,'c':3}
def demo(a,b,c=4)
  print(a,b,c)
demo(**s)
#结果
1 2 3

三、变量的作用域

变量的作用域就是变量能够作用的空间

变量按照作用域划分:全局变量,局部变量

全局变量:在函数体外定义的变量为全局变量

全局变量在函数内外都能够使用,但在函数内不能直接修改全局变量, 如果在函数内修改全局变量,必须添加 global 关键字(python不推荐在函数内修改全局变量的值)

局部变量:在函数内定义的变量为局部变量

局部变量是在函数内定义的变量,在函数体外局部变量是无效的

在函数内定义的局部变量和函数外定义的全局变量是两个概念(变量同名)

a=1
def sum()
  a=3
#这里函数外的a和函数内的a是两个变量

四、变量的文档注释和变量名

1、函数doc文档

函数doc文档是用于描述函数功能,是函数内的特殊注释

def sum(a,b):
  '''
  返回两个数的和
  '''
  return a+b

2、函数名的获取

__name__方法

>>> print(print.__name__)
print
>>>

3、函数doc文档的获取

__doc__方法

 总结

 

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python模块shutil函数应用示例详解教程

    目录 本文大纲 知识串讲 1)模块导入 2)复制文件 3)复制文件夹 4)移动文件或文件夹 5)删除文件夹(慎用) 6)创建和解压压缩包 本文大纲 os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一般常用操作.而Python另外一个标准库--shutil库,它作为os模块的补充,提供了复制.移动.删除.压缩.解压等操作,这些 os 模块中一般是没有提供的.但是需要注意的是:shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile这两个模块来进行的. 知识串

  • Python偏函数实现原理及应用

    摘要:python的设计核心原则就是简洁--在这种原则的指导下,诞生了lambda表达式和偏函数:二者都让函数调用变得简洁.本文主要为你介绍偏函数的应用. 1.为什么要使用偏函数 如果我们定义了一个函数,比如说将四个数相加add(one ,two,three,four),上层有很多函数需要调用这个函数.在这些调用中,80%的调用传递的参数都是one=1,two=20,如果我们每都输入相同的参数,这样乏味而且浪费,固然,我们可以通过默认参数来解决这个问题:但是如果另外我们也需要参数是one=2,t

  • Python应用实现双指数函数及拟合代码实例

    双指数函数 待拟合曲线为 y(x) = bepx + ceqx import matplotlib.pyplot as plt x = ([0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0]) y = ([0.33, 0.26, 0.18, 0.16, 0.12, 0.09, 0.08, 0.07, 0.06, 0.06, 0.0

  • python 函数的详解与应用范例

    目录 如何定义一个函数 如何使用 什么是参数 不定长参数 return是干什么 如何定义一个函数 函数也称方法,下面写一个简单的函数: def function(): print("我是函数.") 这是一个很简单的函数,函数只干了一件事,打印输出"我是函数."这句话. 从这个函数的外观看,有个def,还有个function加个()和:. def是定义函数的关键字不能改动,function为函数的名称,可以随便写,后加()和:这是规定. 在函数里面的输出语句可以称之为

  • 浅谈python3打包与拆包在函数的应用详解

    1.序列(拆包) *用作序列拆包:*可对字符串.列表.集合.元组.字典.数字元素等序列进行拆包 print(*(1,2,3,4,5,6)) #1 2 3 4 5 6 print(*[1,2,3,4,5,6]) #1 2 3 4 5 6 序列拆包赋值: 注意:*变量 不能在第一个位置,否则会报错 a, b, *c = 0, 1, 2, 3 #获取剩余部分 a, *b, c = 0, 1, 2, 3 #获取中间部分 a, b, *c = 0, 1 a, *b, c = 0, 1 优先对位置变量赋值,

  • python自定义函数def的应用详解

    这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法: def 函数名(参数1,参数2,参数-): 函数体(语句块) return [返回值] 注意事项 函数名的命名规则:和标识符的基本规则是一样的,基本上由小写字母和数字下划线构成 def 是关键字,不能够修改(define的简称) 函数后面一定要加括号(英文状态的)括号里面是否加参数看具体情况 括号后面的冒号不能够忘记 函数体必须加上缩进(

  • python函数的高级应用详解

    前言 函数是我们所熟知的,在python中函数的定义格式如下: def 函数名(形式参数): ​ 函数体 ​ 函数的封装就是实现代码块的复用,python内置了一些基础的函数,开发者也可以自己定义函数,函数只能先定义,再进行调用. 一.函数调用的步骤 1.程序遇到函数调用的情况时,暂停执行 2.将实际参数值传递给函数参数 3.执行函数体语句 4.返回值并继续向下执行 二.参数的打包和解包 打包 ​ 参数的打包指的是多个参数可以同时处理,也叫可变长度参数, 可变长度参数在定义函数时主要有两种形式*

  • 对python函数签名的方法详解

    函数签名对象,表示调用函数的方式,即定义了函数的输入和输出. 在Python中,可以使用标准库inspect的一些方法或类,来操作或创建函数签名. 获取函数签名及参数 使用标准库的signature方法,获取函数签名对象:通过函数签名的parameters属性,获取函数参数. # 注意是小写的signature from inspect import signature def foo(value): return value # 获取函数签名 foo_sig = signature(foo)

  • Python函数中的全局变量详解

    目录 1.什么是全局变量? 2.在函数外部定义的变量是全局变量. 3.在函数内部定义中添加global关键词后变成全局变量. 总结 1.什么是全局变量? 在Python中,全局变量指的是可以作用于函数内部和外部的变量. 在这里有两种情况:在函数的外部定义和内部定义添加global关键词变成全局变量. 2.在函数外部定义的变量是全局变量. 假设一个变量在函数的外部定义,那么这个函数就可以在函数的内部访问,也可以在函数的外部的访问. 示例:定义一个全局变量b,然后定义一个函数a,最后在该函数的内部和

  • Python函数属性和PyC详解

    目录 函数属性 自定义属性 查看函数对象属性 属性和字节码对象PyCodeObject 总结 函数属性 python中的函数是一种对象,它有属于对象的属性.除此之外,函数还可以自定义自己的属性.注意,属性是和对象相关的,和作用域无关. 自定义属性 自定义函数自己的属性方式很简单.假设函数名称为myfunc,那么为这个函数添加一个属性var1: myfunc.var1="abc" 那么这个属性var1就像是全局变量一样被访问.修改.但它并不是全局变量. 可以跨模块自定义函数的属性.例如,

  • Python中的高级数据结构详解

    数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数据结构,分别是List.Tuple.Dictionary以及Set.大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供选择,例如Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint.本文将介绍这些数据结构的用法,看看它们是如何帮助我们的应用程序的. 关于四种内建数据结构的使用方

  • Python函数参数分类原理详解

    一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号,隔开 案列: # 利用函数的参数,定义一个可以完成任意两个数相加的函数 def add_num(a,b): c = a + b print(c) 2.带参数的函数调用: 函数定义了参数,那么调用函数的时候就需要传入参数 add_num(11,22) #运行结果 33 上面的案列中,我们定义函数的时候在函数名后面的括号里定义的参数叫做形参, 而

  • Python 函数list&read&seek详解

    一.函数list (1)定义:用打开的文件作为参数,把文件内的每一行内容作为一个元素 (2)格式:list(文件) (3)例子: with open(r"test01.txt",'r') as f: l = list(f) for line in l: print(line) 2.函数read (1)作用:按照字符进行读取文件内容 (2)格式:文件.read(数字) 如果数字缺省,那么代表把所有的字符全都读出来:如果里面含有数字那么代表一次性读取这么多字符 (3)注意:允许输入参数读取

  • Python函数基本使用原理详解

    1.什么是函数 函数就相当于具备某一功能的工具 函数的使用必须遵循一个原则: 先定义 后调用 2.为何要用函数 1.组织结构不清晰,可读性差 2.代码冗余 3.可维护性.扩展性差 3.如何用函数 1.函数的定义 定义的语法 ''' def 函数名(参数1,参数2,...): """文档描述""" 函数体 return 值 1. def: 定义函数的关键字: 2. 函数名:函数名指向函数内存地址,是对函数体代码的引用.函数的命名应该反映出函数的功能

  • Python高级特性——详解多维数组切片(Slice)

    (1) 我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组: >>> a = np.arange(24).reshape(2,3,4) >>> a array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]) 多维数组a中有0~23的整数,共24个元素,是一个2×3×4的三维数组.我们可以

  • Python学习之魔法函数(filter,map,reduce)详解

    目录 filter() 函数 map() 函数 reduce() 函数 filter() 函数 小实战 今天的这一章节我们来学习一下,Python 中的三个高级函数,也被称之为 魔法函数.之所以把他们交的这么高级,主要是因为它们返回的数据类型多数是 迭代器. 我们在上一章节有介绍过,迭代器 可以提升我们的代码的执行效率.降低内存消耗.所以接下来我们就认识一下这些 魔法函数. filter() 函数 filter() 函数 是python的一个内置函数. filter() 函数的功能:可以将一个可

随机推荐