-
2021-01-23 10:33:51
怎么做:当局部变量与全局变量同名时在局部变量的作用域内,可以通过关键字this来引用成员变量。
特别注意:关键字this代表的是一个对象,只能用在非静态中,不能用在静态中,因为在静态中this可能是类名也可能是对象,因此在编译时会报错,如果需要,可以通过对象去访问成员变量
代码说明:
public class Test { int x=1; static void show() { int x=2; System.out.println("局部变量:"+x); //System.out.println(this.x);//程序在编译时报错,this只能是对象,而在这里this可能是对象也可能是类名,具有不确定性 System.out.println("全局变量:"+new Test().x);//可以通过创造对象的方式去访问全局变量 } void view() { int x=2; System.out.println("局部变量:"+x); System.out.println("全局变量:"+this.x);//编译不会出错,此时方法为非静态 } }
更多相关内容 -
Python3.5局部变量与全局变量作用域实例分析
2020-12-26 10:49:23当局部变量与全局变量同名时,在定义局部变量的子程序内局部变量其作用;其他地方全局变量起作用。 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu school = "Qing hua" #全局变量 -
(小技巧)当局部变量名与全局变量名相同时,如何使用全局变量名
2020-08-19 09:05:34(局部变量名与全局变量名相同时,可使用 :: 访问全局变量)`` (:: 这个运算符被称为一元作用域解析运算符) 例子 #include <iostream> int v1 = 10; int main() { int v1 = 5; std::cout << ...Unary Scope Resolution (一元作用域解析运算符)
(局部变量名与全局变量名相同时,可使用 :: 访问全局变量)``
(:: 这个运算符被称为一元作用域解析运算符)
例子
#include <iostream> int v1 = 10; int main() { int v1 = 5; std::cout << "local variable v1 is " << v1 << std::endl; std::cout << "global variable v1 is " << ::v1 << std::endl; return 0; }
-
Python3基础 当函数中的局部变量与全局变量同名了,各管各的
2020-12-03 10:30:15镇场诗:诚听如来语,顿舍世间名与利。愿做地藏徒,广演是经阎浮提。...def Test() :var=5print(var) #局部变量var=10print(var) #全局变量Test()print(var) #全局变量#因为全局变量与局部变量存...镇场诗:
诚听如来语,顿舍世间名与利。愿做地藏徒,广演是经阎浮提。
愿尽吾所学,成就一良心博客。愿诸后来人,重现智慧清净体。
——————————————————————————————————————————
code:
def Test() :
var=5
print(var) #局部变量
var=10
print(var) #全局变量
Test()
print(var) #全局变量
#因为全局变量与局部变量存储在两个不同的空间
result:
============= RESTART: C:/Users/Administrator/Desktop/mytest5.py =============
>>>
10
5
10
>>>
——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。Python版本3.5,系统 Windows7。
Python是优秀的语言,值得努力学习。我是跟着小甲鱼视频教程学习的,推荐。
我是一个新手,所以如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取成就一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。
-
python,javascript在函数中同时调用同名的局部变量与全局变量引发的问题
2020-12-03 10:30:14首先在python中:在python同一函数中调用了全局变量后又在内部定义了与全局变量同名的局部变量,导致引用全局变量那里会报错:UnboundLocalError: local variable 'a' referenced beforeassignment代码:1 ...首先在python中:
在python同一函数中调用了全局变量后又在内部定义了与全局变量同名的局部变量,导致引用全局变量那里会报错:
UnboundLocalError: local variable 'a' referenced before
assignment
代码:
1 defnumCheck():2 print("输出1:",a) #报错处,目的是想引用全局中的99
3 a = 10
4 print("输出2:", a)5 deffun():6 print("输出3:", a)7 a = 99
8 numCheck()9 fun()10 print(a)
运行结果:会直接报错。
解决方式:
方式1:在函数中要定义局部变量时不要与全局变量同名, 即在numCheck( )中定义的局部变量换个名。
方式2:进入函数时先定义与全局变量同名的局部变量,就不会报错了,
但是这样就没有达到引用全局变量a之后再定义与全局变量同名的局部变量a 的目的,所以引入方式3。
方式3:这里涉及到全局变量和局部变量的区分,如果想使用全局变量a之后再使用同名的局部变量a,
就应该是把方法和变量定义在类里。通过类的成员变量去引用全局变量。
代码如下:
1 classmine:2 def __init__(self,a):3 self.a =a4 self.b = 100
5
6 defnumCheck(self):7 print("输出1",self.a)8 a = 10
9 print("输出2", a)10
11 deffun(self):12 print("输出3:", self.a)13
14 if __name__ == "__main__":15 a = 99
16 myclass =mine(a)17 myclass.numCheck()18 myclass.fun()19 print(a)20 print("类中的b为:",myclass.b) #调用类中的变量b
输出结果:
javascript中
(听说有的前端面试会考)
同一函数中调用了全局变量后又在内部定义了与全局变量同名的局部变量,
导致想引用的全局变量变为 undefined (这个错误类似于先引用了a才定义a,前面个a并不会指向全局变量a那里,原因我也不知道2333)
代码:
1 < script type = "text/javascript" >
2 functionf1(){3 console.log("f1中没赋值之前调用a: " +a);4 var a = 10;5 console.log("f1中赋值后调用a: " +a);6 }7
8 functionf2(){9 console.log("f2中调用a的值为: " +a);10 }11
12 var a = 99;13 f1();14 f2();15 console.log("直接输出a的值: " +a);16
运行结果:
解决方法:
1. 改局部变量名。
2. 在【console.log("f1中没赋值之前调用a: "+ a);】处的a前面加this
即:console.log("f1中没赋值之前调用a: " + this.a);
能运行得:
-
PHP局部变量与全局变量
2021-05-08 11:58:43一、局部变量定义:在函数内部声明,且只能在函数内部... //Undefined 局部变量不能再函数外部调用二、全局变量定义:在函数外部声明,可以在函数内部使用 global 关键字调用。(注意顺序)demo2:$name = "linwu";fu... -
python-局部变量与全局变量作用域
2020-11-29 13:03:20FOLLOW ME一、局部变量局部变量只在函数内生效,这个函数就是这个变量的作用域。这个变量的作用域只限制在这个函数中。def change_name(name):print("before change",name)name="YUAN"print("after change",name)... -
局部变量与全局变量
2021-01-08 11:31:01局部变量与全局变量的关系是一个非常重要且细致的问题,在这方面,稍不注意就非常容易出问题。现稍作总结。 变量的作用域 变量的作用域是指变量的使用范围。根据变量的作用域,可以将变量分为局部变量与全局变量。 ... -
深入理解C++编程中的局部变量和全局变量
2020-12-31 14:55:54局部变量 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。同样,在复合语句中定义的变量只在本复合语句范围内有效。这称为... -
全局变量与局部变量同名,函数内部调用的是局部变量还是全局变量?
2018-09-25 06:32:23UINT8 acc_tab_sta = acc->acc_tab_sta; static void hmi_adas_root_callback_on_status(ndm_node_t *self, ndm_evt_t *in_status) { UINT8 acc_tab_sta = 0; switch (NodeMsgGetEvent(in_status)) ... -
关于全局变量和局部变量同名时,如何访问全局变量的问题
2019-09-27 20:12:38当局部变量和全局变量同名时,会优先访问局部变量,当我们要访问全局变量时,应该如何做?(暂时只想到三种) `` 1.指针 2.函数返回值 3.extern关键字 ... -
python函数返回局部变量,局部&全局变量同名问题
2020-12-03 10:30:16其实关于返回局部变量不只是python的...因为当创建函数的堆栈撤销,所有对局部变量的修改都灰飞烟灭。来看我的小例子1 defhandle():2 classmyClass(object):3 def __init__(self): #对各种基本数据类型测试4 self.x... -
c++作用域运算符用法(全局变量和局部变量)
2020-12-31 09:52:26通常情况下,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。作用域运算符 代码如下:#...作用域运算符可以用来解决局部变量与全局变量的重 -
Python局部变量与全局变量
2021-01-28 21:23:19Python中的局部全局与全局变量主要体现在函数内的变量与函数外的变量。局部与全局就是变量的作用域(作用范围)。当你在函数内部定义变量的时候,它们与函数外具有相同名称的变量没有任何关系,即变量对于函数来说是 ... -
Python局部变量与全局变量区别原理解析
2020-12-06 11:12:171、局部变量name = "Yang Li"def change_name(name):print("before change:",name)name = "你好"print("after change", name)change_name(name)print("在外面看看name改了么?",name)输出:before change: Yang ... -
C语言全局变量和局部变量同名时的使用
2018-11-29 21:18:37C语言全局变量和局部变量同名时的使用 全局变量作用域为程序的始终,局部变量作用于当前函数。 在声明了同名变量的方法中,使用局部变量的数值 在未声明同名变量的方法中,使用全局变量的数值 开始未声明局部变量,... -
python函数局部变量、全局变量、递归知识点总结
2021-01-03 02:28:35#由于name在此函数之前已经被定义为全局变量,此处函数读取变量name是读取的全局变量name “xxx”,函数内部就不能再定义其同名局部变量,否则无法区分变量为局部变量还是全局变量 # name = yyy #此语句放开以后会... -
[面试/笔试系列3]局部变量能否和全局变量重名
2012-11-17 23:44:31局部变量可以与全局变量同名, 在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器 而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名 的局部... -
函数内部定义的局部变量与全局变量重名
2019-04-20 14:26:04/**********************************************...*函数内部定义的局部变量与全局变量重名时,函数在使用该变量的时候会以局部变量覆盖全局变量,也就是只有局部变量会起效果。 ********************************... -
局部变量、全局变量、静态变量
2019-09-16 09:52:33换言之,在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外时不能使用这些变量的,它们称为局部变量。 全局变量 定义:在函数外定义的变量是外部变量... -
同名的全局变量与局部变量
2014-06-04 10:34:40朋友们都知道,局部变量命名时是不能与全局变量同名的,但是我们偏要它同名会发生什么呢 -
C++局部变量与全局变量 | 输出局部全局变量
2020-11-30 16:59:48C++局部变量 C++局部变量是指:在一个函数内部定义的变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它,在此函数以外是不能使用这些变量的。 同样,在复合语句中定义的变量只在本复合语句范围内有效... -
C语言:局部变量与全局变量
2021-01-14 16:42:581.形参与实参C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。1.1形参(形式参数)在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收... -
Shell中局部变量和全局变量
2021-12-12 22:07:52在shell编程过程中,不同于其他编程语言,在一些高级编程语JAVA或Python过程中,在定义一个变量的时候,如果这个变量是...2、局部变量: 定义变量时,使用local关键字 函数内和外若存在同名变量,则函数内部变量覆... -
局部变量,静态局部变量,全局变量,静态全局变量详解
2022-04-16 16:59:42全局变量具有外部连接属性,因此全局变量具有全局的作用域,外部任意一个源文件想要使用其他源文件中的全局变量,只需要先使用extern关键字进行声明(extern是一个关键字,是专门用来声明外部符号的),然后就可以... -
c语言全局变量和局部变量问题及解决汇总
2021-01-01 11:05:53要用全局变量,需要使用”::” 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环... -
c语言中的局部变量和全局变量
2021-08-05 22:52:14我们按照变量的作用域范围可以把变量划分为局部变量和全局变量; 局部变量 局部变量出现在三种地方: (1)在函数的开头定义的变量 (2) 在函数内的复合语句内定义的变量 (3)形式参数 在一个函数内部定义的变量只在...