zoukankan      html  css  js  c++  java
  • 12-Python-局部、全局变量

    1、基本定义

    • 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
    • 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
    • 当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
     1 school = 'CD edu.'  #全局变量
     2 def change_name(name):
     3     school = 'oldboy'
     4     print("before change",name,school)
     5     name = "Druid"  #局部变量,作用域为该函数
     6     print("after change",name,school)
     7 
     8 name = 'druid'
     9 change_name(name)
    10 
    11 print(name)  #任然没有改变
    12 print(school)  #全局变量仍然没有改变
    13 
    14 print("-----------华丽的分割线-----------")
    15 
    16 school = 'CD edu.'  #全局变量
    17 def change_name(name):
    18     global school  #强制修改全局变量。但是不要这么做!
    19     school = 'oldboy'
    20     print("before change",name,school)
    21     name = "Druid"  #局部变量,作用域为该函数
    22     print("after change",name,school)
    23 
    24 name = 'druid'
    25 change_name(name)
    26 
    27 print(name)  #任然没有改变
    28 print(school)  #全局变量被局部变量改变
    29 
    30 print("-----------华丽的分割线-----------")
    31 
    32 def Name():  #不要这么做
    33     global name
    34     name = "druid"
    35 
    36 Name()
    37 print(name)
    38 
    39 print("-----------华丽的分割线-----------")
    40 
    41 names = ["druid","alex"]
    42 def change_names():
    43     names[1] = "eric"
    44     print("inside ",names)
    45 
    46 change_names()
    47 print(names)  #全局变量的值发生改变
  • 相关阅读:
    NHibernate4使用Oracle.ManagedDataAccess.dll连接oracle及配置多个数据库连接
    Myeclipse闪退故障
    Log4j快速使用精简版
    Eclipse快捷键 10个最有用的快捷键
    Java compiler level does not match解决方法
    ArcMap常用VBA
    firefox浏览器中silverlight无法输入问题
    C#导入Excel遇到数字字母混合列数据丢失解决
    ArcMap计算PolyLine中点VBA
    Apple Watch 开发详解
  • 原文地址:https://www.cnblogs.com/Druidchen/p/7758243.html
Copyright © 2011-2022 走看看