精华内容
下载资源
问答
  • python在函数中改变外部变量

    千次阅读 2019-10-13 10:41:34
    python在函数中改变改变外部变量 python在函数中修改变量值的方法 和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种...

    python在函数中改变改变外部变量
    python在函数中修改变量值的方法
    和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值’来传递对象。

    在函数中修改外部变量
    在函数中使用global,将临时变量改变为全局变量
    x = 1
    def test():
    global x
    x = 2
    print(x)

    test() #2
    print(x) #2
    1
    2
    3
    4
    5
    6
    7
    8
    不定义全局变量,函数里面的变量不影响外边,而且函数不能调用外边的变量,相当于两个变量了。
    x = 1
    def test():
    x = 2
    print(x)

    test() #2
    print(x) #1
    1
    2
    3
    4
    5
    6
    7
    在函数外边声明的变量,在函数里边是不能直接用的,正如2所说,他们属于两个不同的变量了。
    x = 1
    def test():
    print(x) #Error
    x = 2
    print(x)

    test()
    print(x)
    ————————————————
    版权声明:本文为CSDN博主「nathan_yo」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/nathan_yo/article/details/98639051

    展开全文
  • 函数里的变量自在函数内有效, 那么如何在函数内调用外部变量呢? 全局变量 global global可以定义全局变量, 但要注意先定义, 再赋值. 否则会有警告: Warning: The value of local variables may have been ...

    函数里的变量自在函数内有效, 那么如何在函数内调用外部的变量呢?

    1. 全局变量 global
      global可以定义全局变量, 但要注意先定义, 再赋值. 否则会有警告:

    Warning: The value of local variables may have been changed to match the globals. Future versions of MATLAB will require that you declare a variable to be global before you use that variable.

    global x
    x=5;
    
    subfunc % 输出为5
    
    function output=subfunc
    global x % 在使用全局变量时, 要先声明
    output=x;
    end
    
    clear global x % 清除全局变量
    
    
    1. 使用子函数
    function main
    x=5;
    subfunc
    
    function output=subfunc
    
    output=x;
    end
    end
    

    执行 main, 输出5. 子函数共享父函数的变量

    展开全文
  • JavaScript函数定义全局变量

    千次阅读 2020-01-21 09:58:39
    是否可以JavaScript函数定义全局变量? 我想其他函数中使用trailimage变量makeObj函数中声明)。 <html xmlns="http://www.w3

    是否可以在JavaScript函数中定义全局变量?

    我想在其他函数中使用trailimage变量(在makeObj函数中声明)。

    <html xmlns="http://www.w3.org/1999/xhtml">
        <head id="Head1" runat="server">
            <title></title>
            <script type="text/javascript">
                var offsetfrommouse = [10, -20];
                var displayduration = 0;
                var obj_selected = 0;
                function makeObj(address) {
                    **var trailimage = [address, 50, 50];**
                    document.write('<img id="trailimageid" src="' + trailimage[0] + '" border="0"  style=" position: absolute; visibility:visible; left: 0px; top: 0px; width: ' + trailimage[1] + 'px; height: ' + trailimage[2] + 'px">');
                    obj_selected = 1;
                }
    
                function truebody() {
                    return (!window.opera && document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
                }
                function hidetrail() {
                    var x = document.getElementById("trailimageid").style;
                    x.visibility = "hidden";
                    document.onmousemove = "";
                }
                function followmouse(e) {
                    var xcoord = offsetfrommouse[0];
                    var ycoord = offsetfrommouse[1];
                    var x = document.getElementById("trailimageid").style;
                    if (typeof e != "undefined") {
                        xcoord += e.pageX;
                        ycoord += e.pageY;
                    }
                    else if (typeof window.event != "undefined") {
                        xcoord += truebody().scrollLeft + event.clientX;
                        ycoord += truebody().scrollTop + event.clientY;
                    }
                    var docwidth = 1395;
                    var docheight = 676;
                    if (xcoord + trailimage[1] + 3 > docwidth || ycoord + trailimage[2] > docheight) {
                        x.display = "none";
                        alert("inja");
                    }
                    else
                        x.display = "";
                    x.left = xcoord + "px";
                    x.top = ycoord + "px";
                }
    
                if (obj_selected = 1) {
                    alert("obj_selected = true");
                    document.onmousemove = followmouse;
                    if (displayduration > 0)
                        setTimeout("hidetrail()", displayduration * 1000);
                }
            </script>
        </head>
        <body>
            <form id="form1" runat="server">
            <img alt="" id="house" src="Pictures/sides/right.gif" style="z-index: 1; left: 372px;
                top: 219px; position: absolute; height: 138px; width: 120px" onclick="javascript:makeObj('Pictures/sides/sides-not-clicked.gif');" />
            </form>
        </body>
    </html>
    

    #1楼

    如果要创建启动函数,则可以通过以下方式定义全局函数和变量:

    function(globalScope)
    {
         //define something
         globalScope.something() { 
             alert("It works");
         };
    }(window)
    

    因为该函数是使用此参数全局调用的,所以这里是全局范围。 因此,事物应该是全球事物。


    #2楼

    UPDATE1:如果您阅读注释,则围绕此特定命名约定进行了很好的讨论。

    UPDATE2:似乎自从我的答案发布以来,命名约定就变得更加正式了。 教书,写书等的人谈论var声明和function声明。

    UPDATE3:这是支持我的观点的其他Wikipedia帖子: http : //en.wikipedia.org/wiki/Declaration_( computer_programming)#Declarations_and_Definitions

    ...并回答主要问题。 函数前的DECLARE变量。 这将起作用,并且将遵循在范围顶部声明变量的良好做法:)


    #3楼

    经典示例:

    window.foo = 'bar';
    

    使用IIFE遵循最佳实践的现代,安全示例:

    ;(function (root) {
        'use strict'
    
        root.foo = 'bar';
    )(this));
    

    如今,还可以选择使用WebStorage API

    localStorage.foo = 42;
    

    要么

    sessionStorage.bar = 21;
    

    在性能方面,我不确定它是否比将值存储在变量中明显慢。

    我可以使用...所述的广泛的浏览器支持


    #4楼

        var Global = 'Global';
    
        function LocalToGlobalVariable() {
    
        //This creates a local variable.
    
        var Local = '5';
    
        //Doing this makes the variable available for one session
        //(a page refresh - Its the session not local)
    
        sessionStorage.LocalToGlobalVar = Local;
    
        // It can be named anything as long as the sessionStorage references the local variable.
        // Otherwise it won't work
        //This refreshes the page to make the variable take effect instead of the last variable set.
    
        location.reload(false);
        };
    
        //This calls the variable outside of the function for whatever use you want.
    
        sessionStorage.LocalToGlobalVar;
    

    我意识到其中可能存在很多语法错误,但这是其总体思路...非常感谢LayZee指出这一点...您可以在http://www.w3schools找到本地存储和会话存储。 com / html / html5_webstorage.asp 。 我的代码需要同样的东西,这确实是个好主意。


    #5楼

    这是一个可能很丰富的示例代码。

      var Human = function(){
       name = "Shohanur Rahaman";  // global variable
       this.name = "Tuly"; // constructor variable 
       var age = 21;
     };
    
      var shohan = new Human();
    
     document.write(shohan.name+"<br>");
     document.write(name);
     document.write(age); // undefined cause its local variable 
    

    在这里,我找到了一个不错的答案: 如何在JavaScript中声明一个全局变量


    #6楼

    这是另一个使变量在其他函数中可用而又不必使用全局变量的简便方法:

     function makeObj() { // var trailimage = 'test'; makeObj.trailimage = 'test'; } function someOtherFunction() { document.write(makeObj.trailimage); } makeObj(); someOtherFunction(); 


    #7楼

    只需在函数外部声明它,然后在函数内部分配值即可。 就像是:

    <script type="text/javascript">
        var offsetfrommouse = [10, -20];
        var displayduration = 0;
        var obj_selected = 0;
        var trailimage = null ;  // GLOBAL VARIABLE
        function makeObj(address) {
            trailimage = [address, 50, 50];  //ASSIGN VALUE
    

    或者简单地从函数内部的变量名中删除“ var”也会使其具有全局性,但是最好在外部将其声明一次以获取更清晰的代码。 这也将起作用:

    var offsetfrommouse = [10, -20];
    var displayduration = 0;
    var obj_selected = 0;
    
    function makeObj(address) {
        trailimage = [address, 50, 50];  //GLOBAL VARIABLE , ASSIGN VALUE
    

    我希望这个例子能进一步解释: http : //jsfiddle.net/qCrGE/

    var globalOne = 3;
    testOne();
    
    function testOne()
    {
        globalOne += 2;
        alert("globalOne is : " + globalOne );
        globalOne += 1;
    }
    
    alert("outside globalOne is : " + globalOne);
    
    testTwo();
    
    function testTwo()
    {
        globalTwo = 20;
        alert("globalTwo is " + globalTwo);
        globalTwo += 5;
    }
    
    alert("outside globalTwo is :" + globalTwo);
    

    #8楼

    只需声明

    var trialImage;
    

    外。 然后

    function makeObj(address) {
        trialImage = [address, 50, 50];
    ..
    ..
    }
    

    希望这可以帮助。


    #9楼

    不,你不能。 只需在函数外部声明变量即可。 您不必在分配值的同时声明它:

    var trailimage;
    
    function makeObj(address) {
      trailimage = [address, 50, 50];
    

    #10楼

    是的,正如其他人所说,您可以在全局作用域(所有函数之外)使用var来声明一个全局变量:

    <script>
    var yourGlobalVariable;
    function foo() {
        // ...
    }
    </script>
    

    或者,您可以在window上分配一个属性:

    <script>
    function foo() {
        window.yourGlobalVariable = ...;
    }
    </script>
    

    ...因为在浏览器中,用var声明的所有全局变量全局变量都是window对象的属性。 (在最新规范ECMAScript 2015中,全局范围内的新letconstclass语句创建了不是全局对象属性的全局变量;这是ES2015中的新概念。)

    (也有隐式全局变量的恐怖 ,但不要故意这样做,并尽最大努力避免意外地这样做,也许可以使用ES5的"use strict" 。)

    话虽如此:如果可能(我几乎可以肯定),我会避免使用全局变量。 正如我提到的那样,它们最终是window属性,并且window已经足够拥挤 ,所有具有id (并且很多都只有name )的元素都被转储到其中(无论即将发布的规范如何,IE都将转储几乎所有内容)上面有一个name )。

    而是将代码包装在作用域函数中,并使用该作用域局部变量,并在其中封闭其他函数:

    <script>
    (function() { // Begin scoping function
        var yourGlobalVariable; // Global to your code, invisible outside the scoping function
        function foo() {
            // ...
        }
    })();         // End scoping function
    </script>
    

    #11楼

    在函数外部定义trailimage变量并在makeObj函数中设置其值非常简单。 现在,您可以从任何地方访问其价值。

    var offsetfrommouse = [10, -20];
    var displayduration = 0;
    var obj_selected = 0;
    var trailimage;
    function makeObj(address) {
          trailimage = [address, 50, 50];
          ....
    }
    

    #12楼

    因此,您希望函数内部的变量在函数外部可用吗? 为什么不返回函数内部变量的结果? var x = function returnX { var x = 0; return x; } var x = function returnX { var x = 0; return x; }是这个主意...

        <html xmlns="http://www.w3.org/1999/xhtml">
        <head id="Head1" runat="server">
        <title></title>
        <script type="text/javascript">
    
            var offsetfrommouse = [10, -20];
            var displayduration = 0;
            var obj_selected = 0;
    
            function makeObj(address) {
                var trailimage = [address, 50, 50];
                document.write('<img id="trailimageid" src="' + trailimage[0] + '" border="0"  style=" position: absolute; visibility:visible; left: 0px; top: 0px; width: ' + trailimage[1] + 'px; height: ' + trailimage[2] + 'px">');
                obj_selected = 1;
                return trailimage;
            }
    
            function truebody() {
                return (!window.opera && document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
            }
    
            function hidetrail() {
                var x = document.getElementById("trailimageid").style;
                x.visibility = "hidden";
                document.onmousemove = "";
            }
    
            function followmouse(e) {
                var xcoord = offsetfrommouse[0];
                var ycoord = offsetfrommouse[1];
                var x = document.getElementById("trailimageid").style;
                if (typeof e != "undefined") {
                    xcoord += e.pageX;
                    ycoord += e.pageY;
                }
    
                else if (typeof window.event != "undefined") {
                    xcoord += truebody().scrollLeft + event.clientX;
                    ycoord += truebody().scrollTop + event.clientY;
                }
                var docwidth = 1395;
                var docheight = 676;
                if (xcoord + trailimage[1] + 3 > docwidth || ycoord + trailimage[2] > docheight) {
                    x.display = "none";
                    alert("inja");
                }
                else
                    x.display = "";
                x.left = xcoord + "px";
                x.top = ycoord + "px";
            }
    
            if (obj_selected = 1) {
                alert("obj_selected = true");
                document.onmousemove = followmouse;
                if (displayduration > 0)
                    setTimeout("hidetrail()", displayduration * 1000);
            }
    
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <img alt="" id="house" src="Pictures/sides/right.gif" style="z-index: 1; left: 372px; top: 219px; position: absolute; height: 138px; width: 120px" onclick="javascript:makeObj('Pictures/sides/sides-not-clicked.gif');" />
        </form>
    </body>
    </html>
    

    我尚未对此进行测试,但是如果您的代码在进行此小更改之前就可以使用,那么它应该可以使用。

    展开全文
  • 比如要b.c想要调用a.c里的变量aa或函数aaa,则需要将a.c里的变量aa和函数aaa设置为外部变量函数 方法: a.h中声明aa变量和aaa函数: extern int aa; extern void aaa(void); 然后a.c中定义aa变量和aaa...

    比如要在b.c想要调用a.c里的变量aa或函数aaa,则需要将a.c里的变量aa和函数aaa设置为外部变量和函数

    方法:

    在a.h中声明aa变量和aaa函数:

    extern int aa;
    
    extern void aaa(void);

    然后在a.c中定义aa变量和aaa函数(注意不用extern关键字):

    #include "a.h"
    
    
    int aa=0;
    
    void aaa()
    
    {函数内容}

    最后在b.c中#include "a.h",就可以在b.c中使用a.c中的aa变量或aaa函数

    展开全文
  • php中函数内部调用外部变量

    万次阅读 2018-09-21 11:43:16
    php函数在使用外部变量的几种情况。 外部用global定义 函数内使用$GLOBALS数组引用 global $mytext; $mytext="外部使用global定义"; function test(){ echo $GLOBALS['mytext']."&lt;br&...
  • 变量定义(比如int a[100])出现在在函数以内时(如main()),这个情况下变量a是从栈空间来申请内存进行储存,而栈空间是进程创建时初始化的,大小由系统固定的。所以定义占用较大内存的变量(如大数组)时...
  • C++调用外部函数外部变量

    千次阅读 2018-04-03 22:37:26
    一个C++工程中,如果main.cpp需要调用functions.cpp中定义函数,须头文件common.h中加入函数的声明,main.cpp和functions.cpp中都需要加入#include&lt;common.h&gt;如果需要多个文件共享的全局变量...
  • 外部变量和外部函数

    千次阅读 2011-08-25 20:29:41
    变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以称为...
  • C++外部变量定义与使用

    千次阅读 2019-04-26 19:54:49
    C++中, 定义函数外的变量称为外部变量, 函数内的变量称为局部变量, 也叫自动变量. 外部变量只能被定义一次, 而且在函数内对外部变量的引用必须进行声明, 可用extern语句进行显示声明, 也可以上下文隐式声明, ...
  • 私有变量任何在函数定义变量,都可认为是私有变量,因为不能在函数外部访问这些变量。私有变量包括函数的参数、局部变量在函数内部定义的其它函数。 如下代码:function add(bum1,num2){ var sum=num1+num2; ...
  • c++函数内改变外部变量的值

    千次阅读 2013-05-05 20:23:04
    这两个函数是完全不同意义的东西,你的理解主要是int&a和int* a这个类型上面。要注意int&和int*是两个完全不同的类型。int&是引用类型,而int*是指向int类型变量的指针类型。 void chat(int&a) { a=20; } 调用...
  • 函数不仅可以定义在模块的最外层,还可以定义在另外一个函数的内部,像这种定义在函数里面的函数称之为嵌套函数例如: def print_msg(): # print_msg 是外围函数 msg = "zen of python" def printer(): ...
  • public class Test5 {   //定义包含私有成员变量函数  private int a = 201320883;  private void funcOut(){  System.out.println("out function run print:" + a);   
  • #Filename:golbal.py #在函数中为函数外变量赋值 x=50 def func(): global x print('x is',x) x=2 print('changed global x to',x) func() print('value of x is',x)  
  • 在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数外部函数,可供其他文件调用。 如果在定义函数时省略extern,则默认为外部函数。 但是,调用外部函数时,声明中不可省略extern。 /* 另一...
  • 可以在外部定义一个全局指针变量在定义了static变量函数内部,将static变量的地址付给指针。多个文件时,用extern声明指针。注意:extern 和 static本身就是对立的关键字,使用extern就是为了不同文件都可使用...
  • python在函数外调用变量

    千次阅读 2019-03-21 10:59:00
    def a():  global phone phone=input('请输入手机号码') def b (): ...在函数内用global定义变量变量外就可使用该变量 转载于:https://www.cnblogs.com/zhujunsheng/p/10570169.html...
  • <!doctype html> ...ajax回调函数异步的原因导致了在外部直接获取str的值时还是“aaa”,需要用“bbb”时,可以将用"bbb"的函数放入回调函数中调用。
  • 今天,写条件编译的时候,出现了在函数外部给全局变量赋值的情况,gcc报错,那么c语言为什么不允许在函数外部变量赋值呢?为什么声明变 量的时候可以对变量进行赋值? 出错代码: 1 /* 2 * ======...
  • /**********************************************...*函数内部定义的局部变量与全局变量重名时,函数在使用该变量的时候会以局部变量覆盖全局变量,也就是只有局部变量会起效果。 ********************************...
  • 定义变量Ctrl+左键可以进行跳转,可是类似vue中定义的全局变量,引入的外部文件,不能进行跳转,有没有webStrome功能的插件
  • php调用函数外变量

    千次阅读 2017-06-28 09:59:27
    php调用函数外变量
  • C 程序的外部变量函数

    千次阅读 2011-09-30 13:26:02
    C 程序的外部变量函数 武汉市东湖中学 朱海清 孟学桢 摘要 本文讨论了C程序的外部变量函数的一些性质,结合实际的编程,给出了使用外部变量函数的方法。 关键字:C程序,外部变量函数  C程序由...
  • 闭包是指一个函数定义了一个另外一个函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用,这样就构成了一个闭包 。 闭包的使用,可以隐藏内部函数的工作细节,只给外部使用者提供一个可以...
  • Python中,如果想函数内部对函数外变量进行操作,有一些问题(一些Java,C中再正常不过的操作这里就不行)
  • 函数中的声明和变量定义

    千次阅读 2019-04-14 19:44:13
    某些编程语言里,函数声明和函数定义区分开的,一个函数声明包括提供对函数名,参数的名字(传统上还有参数的类型),但不必给出函数的任何代码,具体的代码通常属于函数定义的范畴。 ​ 声明和定义有区别的...
  • C++中外部定义的成员函数

    千次阅读 2020-10-14 10:22:21
    类的成员函数可以类内部定义,也可以类的外部定义。当定义在类的外部时,需要同时提供类名和函数名。 1 类外部定义成员函数 代码如下所示 classMyClass{ voidmyFunc(); inti; }; voidMyClass::myFunc() { ...
  • C语言的局部变量和外部变量

    千次阅读 2015-08-14 06:03:04
    在函数体或复合语句中声明的变量为局部变量。函数中的形式变量也是局部变量。所有函数体外定义的变量称为外部变量(或全局变量)。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 412,699
精华内容 165,079
关键字:

在函数外定义外部变量