【Python】理解作用域:内置、全局、局部

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。


文章目录

  • 一、基础数据类型
    • 1.整型
      • 1.函数中加global
      • (2)函数中不加global
      • (3)报错
  • 二、组合数据类型
    • 1.列表案例
      • (1)函数中加global
      • (2)函数中不加global


一、基础数据类型

1.整型

1.函数中加global

total = 1 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
    #返回2个参数的和."
    global total
    total = 1 + 2
    print ("函数内是局部变量 : ", total)
    return total
 
#调用sum函数
sum( 10, 20 )
print ("函数外是全局变量 : ", total)

【Python】理解作用域:内置、全局、局部_第1张图片

(2)函数中不加global

total = 1 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
    #返回2个参数的和."
    total = 1 + 2
    print ("函数内是局部变量 : ", total)
    return total
 
#调用sum函数
sum( 10, 20 )
print ("函数外是全局变量 : ", total)

【Python】理解作用域:内置、全局、局部_第2张图片
对于基础数据类型(都是不可变的),global 确定了最终作用的范围。

(3)报错

如果没有加global,是无法使用全局不可变类型的数据的,比如我们在函数中使用total = total + 2

total = 1 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
    #返回2个参数的和."
    total = total + 2
    print ("函数内是局部变量 : ", total)
    return total
 
#调用sum函数
sum( 10, 20 )
print ("函数外是全局变量 : ", total)

【Python】理解作用域:内置、全局、局部_第3张图片

二、组合数据类型

1.列表案例

(1)函数中加global

total = [1,2] # 这是一个全局变量
# 可写函数说明
def add( arg1, arg2 ):
    global total
    total.append(3)
    print ("函数内是局部变量 : ", total)
    return total
 
#调用add函数
add( 10, 20 )
print ("函数外是全局变量 : ", total)

示例结果
【Python】理解作用域:内置、全局、局部_第4张图片

(2)函数中不加global

total = [1,2] # 这是一个全局变量
# 可写函数说明
def add( arg1, arg2 ):
    total.append(3)
    print ("函数内是局部变量 : ", total)
    return total
 
#调用add函数
add( 10, 20 )
print ("函数外是全局变量 : ", total)

示例结果
【Python】理解作用域:内置、全局、局部_第5张图片
对于列表,global 加不加都是一样的,主要是列表是可变数据类型。

你可能感兴趣的:(Python开始入门,python,开发语言)