全局与局部变量

在子程序(函数)中定义的变量称为局部变量, 在程序的一开始定义的变量称为全局变量

全局变量作用于整个程序, 局部变量作用域是定义该变量的子程序

当全局变量与局部变量重名时:

在定义局部变量的子程序内, 局部变量起作用,在其它地方全局变量起作用

# 字符串, 整数不能在函数里面直接改全局变量; 类,集合,列表,字典是可以在函数中直接改全局变量的(元组不可以,因为元组是不可以修改的).

school = 'oldboy'

term = 3

ages = ('','','')

names=['lucy','ada','Rain']

def change():

school = 'edu'

term = 4

ages('','') #元组本来就是不可修改的

names[0] = 'alex'

print('inside func',names)

change()

print(school)

print(term)

print(ages)

print(names)

全局变量如果是字符串 / 整数, 若想在函数中修改, 需要在函数中变量前面加上global,然后再修改.

# 不允许的做法

def change_name():

global name # global把name变成了一个全局变量, 如果有这个全局变量就把那个全局变量拿过来,没有就添加(但最好不要这么做.全局变量还是要在文件前面定义,方便调试)

name = 'alex'

print(name)

change_name()

print(name)

print('\r\n')

# 允许的做法

name = 'alex'

def change_name2():

global name # 在函数中修改全局变量

name = 'lucy'

print(name)

change_name2()

print(name)

python作用域和多继承

python作用域 python无块级作用域 看c语言代码: #include int main() { > ) { ; } printf("i = %d ...

python基础-3 集合 三元运算 深浅拷贝 函数 Python作用域

上节课总结 1 运算符 in 字符串 判断  : “hello” in "asdasfhelloasdfsadf" 列表元素判断:"li" in ['li', ...

js 函数 作用域 全局作用域 局部作用域 闭包

一个变量没有声明但调用 直接报错,声明没有赋值会显示未定义. 作用域 作用域(scope):一条数据可以在哪个范围中使用. 通常来说,一段程序代码中所用到的数据并不总是有效/可用的,而限定这个数据的可 ...

Python作用域详述

作用域是指变量的生效范围,例如本地变量.全局变量描述的就是不同的生效范围. python的变量作用域的规则非常简单,可以说是所有语言中最直观.最容易理解的作用域. 在开始介绍作用域之前,先抛一个问题: ...

Python3基础-Python作用域详述(转载)

转载文章 转载文章 作者:骏马金龙 出处: Python作用域详述 作用域是指变量的生效范围,例如本地 ...

python作用域和JavaScript作用域

JavaScript 一.JavaScript中无块级作用域 一个大括号一个作用域,就属于块级作用域,在Java和c#才存在块级作用域 function Main(){ if(1==1){ var n ...

python开发--列表当全局变量来使用

python中,申明全局变量的时候,一般该变量类型基本上是:字符串或数字: 比较少用“列表”当做变量, 当有作用域限制的情况下,想要外部调用内部作用域的“列表”变量时,可以用这种方式,外部申明一个空列 ...

python 作用域(LEGB)

def fa(a): b = 200 c = 888 def fb(b): print(b) print(a) print(c) print(sum) return fb c = 2 sum = 10 ...

【python】r+,w+ 全局变量

来源: r+:可读可写,若文件不存在,报错w+: 可读可写,若文件不存在,创建文本模式:遇换行符时根据操作系统不同自动转换 ...

随机推荐

各大IT技术博客排行榜

cnblogs 积分排名前3000名  左侧有推荐博客排行 cppblog http://www.cppblog.com/AllBloggers.aspx ...

C#_基础

1.形参与实参 形参是函数定义时的参数,实参是函数被引用时传给它的参数 2.重载与重写 重载:发生在同一个类中,函数(方法)名相同但参数列表必须不同,返回类型可以不同 重写:发生在继承类之间,子类必须 ...

C语言输出字符串

在VS2012中,使用gets_s()方法,其中第二个参数可以用sizeof(...)代替.例子代码如下: #include int main( ) { ]; gets ...

截取linux文件存储路径方法

1.截取linux文件存储路径方法 package com.tydic.eshop.action.freemarker; public class dddd { public static void ...

[偏微分方程教程习题参考解答]4.1Duhamel 原理

1. 如果已知下述常微分方程的特定初值问题 $$\bex \sedd{\ba{ll} -y''+y=0,&x>0,\\ y(0)=0,\quad y'(0)=1 \ea} \eex$$ ...

STL中关于map和set的四个问题?

STL map和set的使用虽不复杂,但也有一些不易理解的地方,如: 为何map和set的插入删除效率比用其他序列容器高? 或许有得人能回答出来大概原因,但要彻底明白,还需要了解STL的底层数据结构. ...

Swift中实现ruby中字符串乘法倍增的功能

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在ruby中对于字符串类型我们可以用乘法生成一个指定数 ...

TensorFlow softmax的互熵损失

函数:tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 功能:这个函数的作用是计算 logits 经 softmax ...

OpenGL12-shader(GLSL)着色语言1(代码已上传)

OpenGL着色语言(GLSL――OpenGL Shading Language)是用来在OpenGL中着色编程的语言, 也即开发人员写的短小的自定义程序,他们是在图形卡的GPU (Graphic P ...