初学python-day11 函数3
函数
1. global关键字
修改全局变量,声明函数内外使用同一个变量
示例:
1 name = 'xiaoming'
2
3 def test():
4 global name
5 name = 'hello'
6
7 test()
8 print(name)
9
10
11 运行结果:
12 hello
2.nonlocal关键字(只能在函数嵌套时使用)
声明函数内部使用同一个变量
name = 'xm'
def test():
name = 'xh'
def inner():
nonlocal name
name = 'laowang'
print('inner-->', name)
inner()
print('test-->', name) test()
print('glocal-->', name) 运行结果: inner--> laowang
test--> laowang
glocal--> xm Process finished with exit code 0
3.值传递与引用传递
前提:可变类型与不可变类型
不可变类型:类似C++的值传递,比如整数、元组等;传递的是变量的值,不会影响变量本身。
可变类型:类似C++的引用传递,如列表、字典等;将内存地址传递过去,将值进行修改,本身也会发生改变。
--值传递
在函数内部如果修改了函数外部的变量,那么在内部创建了一个同名的新的变量和函数外部的是没关系的。
num = 1
def changeNum();
num =2
print(num) changeNum()
print(num)
--引用传递
可变类型在函数内部进行了修改,那么在外部的变量也会发生改变。
def changDic(kwarg):
print(kwarg) # 第三步
kwarg['sex'] = 'man' # 第四步
print(kwarg) # 第五步 dic = {'name':'xm', 'age':18} # 第一步
changDic(dic) # 第二步
print(dic) # 第六步
初学python-day11 函数3的更多相关文章
- Python——day11 函数(对象、名称空间、作用域、嵌套、闭包)
一.函数对象 函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 函数对象的应用 1. 可以直接被引用 fn = cp_fn 2 .可以当作函数参数传递 c ...
- python day11 函数(第三篇)
2019.4.11 S21 day11笔记总结 1. 函数小高级 ( 5* ) 1 函数名可以当作变量来使用 def func(): print(123) v1 = func # func代表函数的地 ...
- 跟着太白老师学python day11 函数名的应用 globals(), locals()
1. 函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> ...
- 初学 Python(十三)——匿名函数
初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- 初学Python(九)——函数
初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x) ...
- Python中函数、类、模块和包的调用
初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...
- 初学 Python(十五)——装饰器
初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def curren ...
- 初学 Python(十四)——生成器
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
- 初学python之感悟
python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...
随机推荐
- Python语法之函数、引用和装饰器
所谓函数,就是把具有独立功能的代码块组织成为一个小模块,在需要的时候调用 函数是带名字的代码块,用于完成具体的工作 需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用该 任务 ...
- JS004. 获取数组最后一个元素且不改变数组的四种方法
TAG: Array.length Array.prototype.reverse() Array.prototype.slice() Array.prototype.pop() Array对象 - ...
- Java单例-双重检查锁
问题引入 Java中实现单例模式,一般性的做法是如下方式: class Singleton { private static Singleton INSTANCE = null; private Si ...
- TypeScript 中命名空间与模块的理解?区别?
一.模块 TypeScript 与ECMAScript 2015 一样,任何包含顶级 import 或者 export 的文件都被当成一个模块 相反地,如果一个文件不带有顶级的import或者expo ...
- 1.docker概述及其历史
一. 为什么会出现docker? 不用说, 肯定是时代进步的产物. 那么, 他为什么能火? 一定是解决了痛点问题. docker也不是一下子就火起来了, 他的火也是有一个过程的, 我们先来看看为什么会 ...
- find用法 以及和exec xargs 的组合使用
1.查找当前目录下所有的txt的文件 [root@master1 ~]# find . -name "*.txt" -type f ./a.txt ./b.txt 2.exec 结 ...
- 使用 elementUI 的表单进行查询,表单中只有一个文本框时,回车会自动触发表单的提交事件,导致页面的刷新。
使用elementUI的el-form组件进行查询时,当输入框仅有一项时,回车自动提交表单,浏览器会刷新页面: 原因:由于当表单只有一个文本框时,按下回车将会触发表单的提交事件, 从而导致页面刷新. ...
- 密码学系列之:Argon2加密算法详解
目录 简介 密钥推导函数key derivation function Password Hashing Competition Argon2算法 Argon2的输入参数 处理流程 简介 Argon2 ...
- TP5指定讲师页面文章上下篇
控制器代码 // 查询上下篇 $courseIds = model('course') ->where([ 'isdel' => 0, 'teacherid' => $teacher ...
- js正则常用方法
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>W3 ...