函数

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的更多相关文章

  1. Python——day11 函数(对象、名称空间、作用域、嵌套、闭包)

    一.函数对象  函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象  函数对象的应用 1. 可以直接被引用  fn = cp_fn 2 .可以当作函数参数传递 c ...

  2. python day11 函数(第三篇)

    2019.4.11 S21 day11笔记总结 1. 函数小高级 ( 5* ) 1 函数名可以当作变量来使用 def func(): print(123) v1 = func # func代表函数的地 ...

  3. 跟着太白老师学python day11 函数名的应用 globals(), locals()

    1.  函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> ...

  4. 初学 Python(十三)——匿名函数

    初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...

  5. 初学 Python(十二)——高阶函数

    初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...

  6. 初学Python(九)——函数

    初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x) ...

  7. Python中函数、类、模块和包的调用

    初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...

  8. 初学 Python(十五)——装饰器

    初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def curren ...

  9. 初学 Python(十四)——生成器

    初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...

  10. 初学python之感悟

    python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...

随机推荐

  1. Python语法之函数、引用和装饰器

    所谓函数,就是把具有独立功能的代码块组织成为一个小模块,在需要的时候调用 函数是带名字的代码块,用于完成具体的工作 需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用该 任务 ...

  2. JS004. 获取数组最后一个元素且不改变数组的四种方法

    TAG: Array.length Array.prototype.reverse() Array.prototype.slice() Array.prototype.pop() Array对象 - ...

  3. Java单例-双重检查锁

    问题引入 Java中实现单例模式,一般性的做法是如下方式: class Singleton { private static Singleton INSTANCE = null; private Si ...

  4. TypeScript 中命名空间与模块的理解?区别?

    一.模块 TypeScript 与ECMAScript 2015 一样,任何包含顶级 import 或者 export 的文件都被当成一个模块 相反地,如果一个文件不带有顶级的import或者expo ...

  5. 1.docker概述及其历史

    一. 为什么会出现docker? 不用说, 肯定是时代进步的产物. 那么, 他为什么能火? 一定是解决了痛点问题. docker也不是一下子就火起来了, 他的火也是有一个过程的, 我们先来看看为什么会 ...

  6. find用法 以及和exec xargs 的组合使用

    1.查找当前目录下所有的txt的文件 [root@master1 ~]# find . -name "*.txt" -type f ./a.txt ./b.txt 2.exec 结 ...

  7. 使用 elementUI 的表单进行查询,表单中只有一个文本框时,回车会自动触发表单的提交事件,导致页面的刷新。

    使用elementUI的el-form组件进行查询时,当输入框仅有一项时,回车自动提交表单,浏览器会刷新页面: 原因:由于当表单只有一个文本框时,按下回车将会触发表单的提交事件, 从而导致页面刷新. ...

  8. 密码学系列之:Argon2加密算法详解

    目录 简介 密钥推导函数key derivation function Password Hashing Competition Argon2算法 Argon2的输入参数 处理流程 简介 Argon2 ...

  9. TP5指定讲师页面文章上下篇

    控制器代码 // 查询上下篇 $courseIds = model('course') ->where([ 'isdel' => 0, 'teacherid' => $teacher ...

  10. js正则常用方法

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>W3 ...