局部变量和全局变量
Posted brace2011
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了局部变量和全局变量相关的知识,希望对你有一定的参考价值。
局部变量:
def change_name(name):
print("before change:", name)
name = "Alex li"
print("after change:", name)
name = "Brace.li"
change_name(name)
print(name)
输出:
before change: Brace.li
after change: Alex li
Brace.li
在函数里面定义的变量只在函数内生效,
这个函数就是这个变量的作用域。
这就叫局部变量:
在子程序中定义的变量称为局部变量,
全局变量:
在第一级定义的变量,在全局范围内生效。
在程序的一开始定义的变量称为全局变量。
name = "Brace.li"
def change_name(name):
print("before change:", name)
name = "Alex li"
print("after change:", name)
print(name)
change_name(name)
print(name)
输出:
Brace.li
before change: Brace.li
after change: Alex li
Brace.li
=================================
name = "Brace.li"
def change_name():
global name #局部变量转全局变量
print("before change:", name)
name1 = "Alex li"
print("after change:", name)
print(name)
change_name()
print(name)
输出:
Brace.li
before change: Brace.li
after change: Brace.li
Brace.li
选中后:
ctrl+? 可以是全部注释
names = ["brace","lucy","kitty"]
def change_name():
names[0] = "jack"
print("inside :", names)
change_name()
print(names)
输出:
inside : [‘jack‘, ‘lucy‘, ‘kitty‘]
[‘jack‘, ‘lucy‘, ‘kitty‘]
print("before change:", name)
name = "Alex li"
print("after change:", name)
name = "Brace.li"
change_name(name)
print(name)
输出:
before change: Brace.li
after change: Alex li
Brace.li
在函数里面定义的变量只在函数内生效,
这个函数就是这个变量的作用域。
这就叫局部变量:
在子程序中定义的变量称为局部变量,
全局变量:
在第一级定义的变量,在全局范围内生效。
在程序的一开始定义的变量称为全局变量。
name = "Brace.li"
def change_name(name):
print("before change:", name)
name = "Alex li"
print("after change:", name)
print(name)
change_name(name)
print(name)
输出:
Brace.li
before change: Brace.li
after change: Alex li
Brace.li
=================================
name = "Brace.li"
def change_name():
global name #局部变量转全局变量
print("before change:", name)
name1 = "Alex li"
print("after change:", name)
print(name)
change_name()
print(name)
输出:
Brace.li
before change: Brace.li
after change: Brace.li
Brace.li
选中后:
ctrl+? 可以是全部注释
names = ["brace","lucy","kitty"]
def change_name():
names[0] = "jack"
print("inside :", names)
change_name()
print(names)
输出:
inside : [‘jack‘, ‘lucy‘, ‘kitty‘]
[‘jack‘, ‘lucy‘, ‘kitty‘]
一般情况,如变量,字符,元组等简单的数据类型,局部变量是不能该全局变量的
但复杂的数据类型,如列表,字典,集合等是可以改动的
但复杂的数据类型,如列表,字典,集合等是可以改动的
以上是关于局部变量和全局变量的主要内容,如果未能解决你的问题,请参考以下文章