全局变量和局部变量的定义

1、局部变量:

定义在函数内部的变量就是局部变量,只能在其被声明的函数内部被访问。这样的变量只在函数运行时存在,一旦退出函数,这些局部变量就都被销毁。所有在函数内部声明的变量名称都将被加入作用域中。

示例如下:

def printInfo(arg1, arg2) :
  sum = arg1 + arg2
  print "函数中的sum = ",sum

#函数体外也定义了一个sum变量
printInfo(5,6)
sum = 1
print "函数外的sum = ",sum

运行结果如下:

函数中的sum = 11
函数外的sum = 1

函数中的sum变量就是局部变量,只能在所在的函数中访问,即使在外面改变了sum变量的值,也不会影响函数中的sum变量的值。

2、全局变量:

全局变量是在函数外定义的,可以在整个程序范围内访问,但是必须在所要访问的函数中使用关键词 global 声明函数外的变量为全局变量,这样访问的才是在函数外定义的全局变量。

示例代码:

def printInfo(y) :
  global x
  sum = x + y
  print "sum = ",sum
x = 10
printInfo(5)

运行结果:

sum = 15

一旦变量被定义为全局变量后,在程序任何地方都可以访问,也可以修改。所以我们不建议过多的使用全局变量(非必要不使用),因为这样可能会导致全局变量的不可预知性,并且全局变量也降低了函数或模块之间的通用性,同时也降低了代码的可读性,别人有可能不知道这个调用的是哪的变量。

时间: 2024-08-04 07:13:51

全局变量和局部变量的定义的相关文章

lua-require和dofile的区别(附加全局变量和局部变量的定义)

--require("6-Coroutine")--仅加载一次,并不执行,参数为文件名不加后缀--dofile("6-Coroutine.lua") --加载并执行,参数为文件名加后缀--SayHey("kkkk") x=10  --默认是全局变量 show= function()local x = 1for i = 1 ,5 dox = x+1--出了这个函数x的值就会失效 从而 x取值为全局变量的值10 end print(x)end--pr

day18 函数定义、参数;名称空间;全局变量及局部变量。

Python之路,Day6 = Python基础6 函数的定义 def func1(): # 定义一个函数,名字叫func1,括号中没有传入参数 print('hello word') # 这里是 func1 的内容,可以定义为任意代码 return 1 # return 是返回的意思,后面是返回值,调用时可以用参数接收,返回值的内容可以为任意形式 # python执行的时候只会检查函数里面是否有语法问题,没有的话,过... # 函数中可以有多个return, 但是执行到return时,函数停止

数组定义方法 数组遍历方法 全局变量和局部变量定义 赋值传值和赋值传址定义

数组的定义方法: 方式一:使用new运算符结合Array()构造函数来创建 var arr = new Array(); 方式二:创建指定长度的数组,()中只有一个整数 var arr = new Array(3); 数组的长度:arr.length,只能统计一维数组的长度. 方式三:将多个数组元素添加小括号()中,各个元素间用逗号隔开 var arr = new Array(10,20,30,40,50); 方式四:使用中括号[]来创建一个数组 var arr = [10,20,30,40];

c语言全局变量和局部变量问题汇总

1.局部变量是否能和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,须要使用"::" 局部变量能够与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量.对于有些编译器而言,在同一个函数内能够定义多个同名的局部变量,比方在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内. 2.怎样引用一个已经定义过的全局变量? 答:extern 能够用引用头文件的方式,也能够用externkeyword,假设用引用头文件方式来引用某个在头文件

JavaSCript全局变量与局部变量

今天公司一个实习小妹子问我两段js代码的区别: [javascript] view plain copy <script type="text/javascript"> var a = "Hello"; function test(){ var a; alert(a); a = "World"; alert(a); } </script> [javascript] view plain copy <script ty

Javascript之全局变量和局部变量部分讲解

以此文作为自己学习的一个总结. 关于全局变量和局部变量的一句简单的定义:在函数外声明的变量都为全局变量,在函数内声明的为局部变量. 一.局部变量和全局变量重名会覆盖全局变量 1 var a = 1; 2 function test1() { 3 var a = 2; 4 alert(a); 5 } 6 test1();// 2 这里的函数中的定义的a是局部变量,它的作用域为函数{}之间,函数外定义的a为全局变量,它的作用域为整个程序(描述有点不准确).在函数中的局部变量和全局变量重名,局部变量会

JS关于全局变量跟局部变量的总结

一.Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分).切记,是function块,而for.while.if块并不是作用域的划分标准,可以看看以下几个例子: 1 <script> 2 function test2(){ 3 alert ("before for scope:"+i); // i未赋值(并不是未声明!使用未声明的变量或函数全抛出致命错误而中断脚本执行) 4 5 // 此时i的值是underfine

JS的全局变量跟局部变量

一.Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分).切记,是function块,而for.while.if块并不是作用域的划分标准,可以看看以下几个例子: <script> function test2(){ alert ("before for scope:"+i); // i未赋值(并不是未声明!使用未声明的变量或函数全抛出致命错误而中断脚本执行) // 此时i的值是underfined for(var

Java——全局变量与局部变量的区别

在Java程序中,会根据变量的有效范围将变量分为成员变量和局部变量,通常类的属性成为累的全局变量(成员变量),成员变量在整个类中都有效,在类的方法体中定义的变量称为局部变量,局部变量只在当前代码体中有效不能用于类的其他方法中.成员变量可与局部变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效,只取局部变量的值.举个例子: 1 public class Man{ 2 static int age=20; 3 public static void main(String[] ar