python --函数学习之全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序内访问。
在调用函数的时候,所有在函数内声明的变量名称都被加到作用域中:
1 total = 0 #定义了一个全局变量
2 def sum(a,b): #定义了一个sum函数
3 total = a+b #total在这里就是一个局部变量
4 print(total)
5 return total
6 sum(10,20) #调用sum函数
7 print(total)。#此时total就是一个全局变量,返回的应当就是之前定义的0
30
0
但是,当内部作用域想要修改外部作用域的变量的时候,就可以用到global和nonlocal关键字了
total = 0 #定义了一个全局变量
def sum(a,b): #定义了一个sum函数
global total #需要使用global关键字
total = a+b #total在这里就是一个局部变量
print(total)
return total
sum(10,20) #调用sum函数
print(total) #此时total就是一个全局变量,返回的应当就是之前定义的0
30
30
python --函数学习之全局变量和局部变量的更多相关文章
- Python函数学习——作用域与嵌套函数
全局与局部变量 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数. 当全局变量与局部变量同名时,在定义局部变量的函数内 ...
- python函数学习的总结
python函数 part1 函数的作用: 函数以功能(完成一件事)为导向 随调随用减少代码重复性 增强代码可读性 函数的结构: def 函数名(): 函数体 函数的返回值 return:在函数中遇到 ...
- Python之路 day3 全局变量、局部变量
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 全局与局部变量 在子程序中定义的变量称为局部变 ...
- Python语法基础——关于全局变量与局部变量
1.函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量,例如: num = 100 def func(): num = ...
- python 函数中使用全局变量
python 函数中如果需要使用全局变量,需要使用 global + 变量名 进行声明, 如果不声明,那么就是重新定义一个局部变量,并不会改变全局变量的值 n [1]: a = 3 In [2]: d ...
- [python 函数学习篇]默认参数
python函数: 默认参数: retries= 这种形式 def ask_ok(prompt, retries=, complaint='Yes or no, please!'): while Tr ...
- 十一、python函数学习
1. 定义函数 def 函数名(形参): 函数体 return xxx--------其下面的内容不再执行 ---------------------------------------- ...
- Python笔记(七)_全局变量与局部变量
全局变量与局部变量:在函数外部或内部定义的变量 1. 函数内部的变量名首次出现,且在=号左边 不管这个变量在全局域中有没有定义该变量名,都被视为一个局部变量 例1: >>>num=1 ...
- python函数里引用全局变量
python在引用变量的时候尤其要注意变量的作用域,在函数里引用不可变类型变量的时候,函数执行结束后是不会改变全局变量的值的:若想在函数里改变不可变类型全局变量的值时,引用的时候要用”global a ...
随机推荐
- 《并发编程的艺术》阅读笔记之Volatile
来源 在 JDK1.2 之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的.而在当前的 Java 内存模型下,线程可以把变量保存本地内存(比如机器的寄存器)中,而不 ...
- js获取数组中最大值
1.es6拓展运算符... Math.max(...arr) 2.es5 apply(与方法1原理相同) Math.max.apply(null,arr) 3.for循环 let max = arr[ ...
- 全网最全最细的appium自动化测试环境搭建教程以及appium工作原理
一.前言 对于appium自动化测试环境的搭建我相信90%的自学者都是在痛苦中挣扎,在挣扎中放弃,在放弃后又重新开始,只有10%的人,人品比较好,能够很快并顺利的搭建成功.appium 自动化测试 ...
- 2019-2020-1 20199329 第二周测试(环境:ubuntu64位)
2019-2020-1 20199329 第二周测试(环境:ubuntu64位) 实验一 0.每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号 1.用Vi输入图中代码,并用gcc编译通过 ...
- Component Object Model (COM) 是什么?
本文主要介绍 COM 的基础知识,倾向于理论性的理解,面向初学者,浅尝辄止. 1. COM 是什么: COM 的英文全称是,Component Object Model,中文译为,组件对象模型.它官方 ...
- Mac文件上传下载到服务器指定命令
下载文件夹 scp -r 远程登录服务器用户名@远程服务器ip地址:/下载文件夹的目录 『空格』 本地目录 下载文件 scp 远程登录服务器用户名@远程服务器ip地址:/下载文件的 ...
- Linux命令(4):touch
功能说明: touch命令参数可创建新文件以及更改文档或目录的日期时间,包括存取时间和更改时间. 命令格式: touch [选项]... 文件... 命令参数: -a 或--time=atime或 ...
- Vue-cli3.0下的雪碧图插件webpack-spritesmith配置方法
在前端项目中,为了减少对图片的请求次数,一般而言需要进行雪碧图的配置.即将多张小图标合并成一张图片,这样页面中的小图标都在一张图片上,只需请求一张图片,就可以通过CSS设置各个小图标的显示,利于节省带 ...
- 业务SQL那些事--慎用LIMIT
业务SQL那些事--慎用LIMIT 在业务中使用LIMIT限制SQL返回行数是很常见的事情,但如果不知道其中可能的坑或者说真正执行逻辑,就可能会使SQL执行非常慢,严重影响性能. LIMIT OFFS ...
- C#模板编程(2): 编写C#预处理器,让模板来的再自然一点
在<C#模板编程(1):有了泛型,为什么还需要模板?>文中,指出了C#泛型的局限性,为了突破这个局限性,我们需要模板编程.但是,C#语法以及IDE均不支持C#模板编程,怎么办呢?自己动手, ...