Python 函数详解
作用域
全局变量&局部变量
全局变量和局部变量都是在讨论无参数的函数,不要把全局变量和局部变量与函数的参数混淆了。
1.1 函数会在函数域中找变量(局部变量),如果函数内部没有定义该变量,则会在全局中寻找变量(全局变量)
a=100
def test1():print(a) # 输出结果100,函数域里没有a,所以去全局寻找
def test2():a=200print(a) # 输出结果为200,函数域里有a,所以取函数域里面的值
1.2 当一个函数使用了全局变量时,就不能再在函数域中修改同名变量,因为这个操作是在修改全局变量
a=100
def test1():print(a) a=200 # 此处不可以修改全局变量print(a)
test1()
UnboundLocalError: local variable 'a' referenced before assignment
如果想要修改全局变量,要先用global声明
a=100
def test1():global aprint(a) a=200 # 这里变成修改全局变量print(a) # 输出结果为200,
1.3 之所以不能修改全局变量,是因为局部作用域不能修改全局变量的指向,正是因为这个原因,所以对列表等可变的类型,可以不用声明就可以修改全局,因为没有更改其指向,而是修改了内容。
a=[1]
def test1():a.append(1)print(a)
Python 使用 LEGB 的顺序来查找一个符号对应的对象
locals -> enclosing function -> globals -> builtins
- locals,当前所在函数、模块
- enclosing,外部嵌套函数的命名空间(闭包中常见)
- globals,全局变量,函数定义所在模块的命名空间
- builtins,内建模块的命名空间
返回值(return)
可以使用list tuple dict 或者直接用,将多个结果同时返回(本质是tuple)
其他
匿名函数:
lambda [arg1 [,arg2,…argn]]:expression
冒号:后面相当于return返回
函数作为参数
当函数作为参数时,是把函数的引用传入到了函数里
def name(a,b,func)
字符串转函数
字符串转表达式
eval() 结合eval input可以给python传入function
Python 函数详解相关推荐
- python函数详解
写在篇前 函数能提高应用的模块性,和代码的重复利用率,是编程必须具备的基本抽象能力.python函数更是奇妙灵活,与很多特性值得探讨,本篇文章就来详细看看python 函数那些巧妙之处.首先,在篇 ...
- 2、Python函数详解(0601)
函数的基础概念 1.函数是python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构: 2.函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件: 3.函数用于将相关功能打包并参 ...
- Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()
一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...
- python函数详解_Python函数详解(转)
原地址:http://www.ithov.com/linux/100534_2.shtml 摘要:Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多 ...
- 【python入门篇——16】Python函数详解(函数定义,参数种类、返回值、作用域等)
一 函数 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 1.代码重用2.保持一致性3.可扩展性 二 函数的创建 2.1 格式: Pyt ...
- python函数详解_INDEX函数
一. 函数的作用 函数就是将一段具有独立功能的代码块 整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求. 函数在开发过程中,可以更高效的实现代码重用. 二. 函数的使用步骤 1. 定义 ...
- python基础知识~ 函数详解2
python~函数详解2 1 生成器函数 定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数 须知 yield和return一样,都可以返回数 ...
- python平方数迭代器_对python中的高效迭代器函数详解
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...
- Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略
Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...
最新文章
- mybatis教程--一对多查询
- 操作系统 第四章【存储器管理】【MOOC答案】
- python3 object_detection_demo_yolov3_async.py出现ImportError: numpy.core.multiarray failed to import
- 2020年跨行业跨领域工业互联网平台
- ASP.NET典型三层架构企业级医药行业ERP系统实战(8大模块22个子系统)
- kafak manager + zookeeper + kafka 消费队列快速清除
- 写爬虫时遇到的问题及解决方法
- 博文视点 on Twitter
- MySQL用sql复制表数据到新表的方法
- 并发编程学习之线程池工作原理
- 带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑
- 双目相机:基于双目视觉的目标测距
- 无人机在环保行业中的应用
- IESM项目实训三——语音合成工具类
- 交流纯电容电路中电容的容抗、容量和频率以及电压与电流的关系
- 市面上最适合跑步用的耳机有哪些、分享五款最优秀的跑步耳机
- jQuery教程_编程入门自学教程_菜鸟教程-免费教程分享
- 【AI简报20210702期】骁龙888 plus发布、RISC-V处理器大飞跃
- 苹果MT4手机软件怎么下载?下载后怎么使用?
- WAF——web安全及web应用防火墙
热门文章
- 学习Python+numpy数组运算和矩阵运算看这254页PPT就够了
- Python+sklearn使用逻辑回归算法预测期末考试能否及格
- 微课|中学生可以这样学Python(例11.3):tkinter通信录管理系统3
- mysql innodb排他锁_mysql 中innoDB引擎的事务喝共享锁喝排他锁
- templet 显示字段外键对应名_主外键和外键约束
- 力扣225. 用队列实现栈(JavaScript)
- docker和数据卷问题探究
- 累加求和a+aa+aaa+aa…a_过半深圳券商评级跃升4家维持在AA级
- python unique函数_《Python编程从入门到实践》json数据可视化练习详解
- 系统分析师资料_超全的“数据分析”自学资料,数据时代必get技能!