zoukankan      html  css  js  c++  java
  • day7-1

    局部变量与全局变量:

    1.前后引用:

     1 import time
     2 
     3 def test1(**kwargs):
     4     print(kwargs)
     5     looger()
     6 
     7 test1(name = 'ri',age = 1)  # NameError: name 'looger' is not defined 注意函数先后引用的问题
     8     
     9 def looger():  # 按格式打印时间
    10     "print time"
    11     time_formakes = "%Y-%m-%d %X"
    12     time_current = time.strftime(time_formakes)
    13     print(time_current)
    14 
    15 # 如果内存中已经存在looger函数,那么可以在任何位置调用,如果没有,则必须在函数定义后调用

    2.局部变量和全局变量

     1 def change_name(name):
     2 
     3     print("before name:",name)
     4     name = 'Ri'# 局部变量,这个函数就是这个变量的作用域
     5     print("after name:",name) 
     6     
     7 
     8 name = 'Rich'
     9 change_name(name)
    10 print("now name:",name)
    11 
    12 '''
    13 before name: Rich
    14 after name: RI
    15 now name: Rich
    16 '''
    17 # 可以把代码理解成一个个层次分明的模块,局部变量在最顶层是全局变量。
    18 # 如果在函数内部想定义全局变量,可以使用global 定义  global name1
    19 #                                                  name1 = 'sd'
    20 

    3. 不要试图在函数中改变局部变量为全局变量,否则来回调用时容易出错

    1 def change_name():
    2     global name
    3     name = 'as'
    4 
    5 change_name()
    6 print(name)
    7 # as  不要使用这种方法

    4.修改列表,集合,字典等数据类型可以在局部改变全局

    name = ['sam','xiaoming','wukong']
    
    def change():
        "test"
        name[0] = 'QWER'
        print(name)
    
    change()
    print(name)
    
    # =============================================================================
    # ['QWER', 'xiaoming', 'wukong']
    # ['QWER', 'xiaoming', 'wukong']
    # =============================================================================

    在子程序中定义的变量成为局部变量,在最高层定义的变量为全局变量

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

    当全局变量与局部变量同名时。在定义局部变量的子程序离,局部变量起作用,其他地方全局变量起作用

  • 相关阅读:
    【2020省选Day1T1】LOJ3299 「联合省选 2020 A | B」冰火战士
    题解 CF1369 D,E,F Codeforces Round #652 (Div. 2)
    题解 LOJ3298 「BJOI2020」封印(SAM,数据结构)
    题解 nflsoj99 牛顿的烈焰激光剑(容斥,DP,数学)
    判断长度为3的等差数列(经典问题)
    树形图求和:一道经典矩阵知识题
    题解 LOJ2390 「JOISC 2017 Day 1」开荒者
    istio sidecar自动注入过程分析
    filebeat-kafka日志收集
    istio路由配置
  • 原文地址:https://www.cnblogs.com/yfjly/p/9724613.html
Copyright © 2011-2022 走看看