Rumah > pembangunan bahagian belakang > Tutorial Python > 详解Python的局部变量和全局变量使用难点

详解Python的局部变量和全局变量使用难点

巴扎黑
Lepaskan: 2017-09-19 11:06:28
asal
2018 orang telah melayarinya

局部变量:在函数中定义的变量,作用域是当前函数,只对当前函数起作用。

全局变量:在代码开头定义的变量,作用域是整段代码,对整段代码起作用。

先看下面的实例, 最后给结论。

name = 'PythonTab'
def func1():
    print('my name is %s' %(name))
    name = 'PythonTab.com'
    print('my name is %s' %(name))
func1()
print(name)
Salin selepas log masuk

输出结果:

my name is PythonTab
my name is PythonTab.com
default
Salin selepas log masuk

结论:当全局变量和局部变量相同时,函数内部优先使用局部变量, 如果没有局部变量则使用全局变量

如果我们想在函数内部,使局部变量对全局变量产生作用,那么我们可以在函数中使用gloabl,下面我们来看

name = 'default'
def func2():
    global name
    name = 'PythonTab.com'
    print(name)
func2()
print(name)
Salin selepas log masuk

输出结果:

PythonTab.com
PythonTab.com
Salin selepas log masuk

我们再来看

nameList =['Python','Tab','.com']
def func3():
    nameList[0] = 'python'
func3()
print(nameList)
Salin selepas log masuk

输出结果:

['python','Tab','.com']
Salin selepas log masuk
Salin selepas log masuk
nameList =['Python','Tab','.com']
def func4():
    nameList = []
func4()
print(nameList)
Salin selepas log masuk

输出结果:

['python','Tab','.com']
Salin selepas log masuk
Salin selepas log masuk

这里可以看到nameList这个全局变量改变了,函数内部没有调用global,却改变了全局变量。因为在python中,列表、字典等如果只是修改其中元素的值,可以不用gloabl,如果是修改整个列表,必须是有gloabl。

nameList =['Python','Tab','.com']
def func5():
    gloabl nameList
    nameList = []
func5()
print(nameList)
Salin selepas log masuk

输出结果:

[]
Salin selepas log masuk

总结:局部函数只作用于该函数内,全局函数作用于整段代码,如果要在函数内修改全局变量的值,使用gloabl。如果只修改列表,字典等中的某个值,可以不用global也可以修改全局变量。

Atas ialah kandungan terperinci 详解Python的局部变量和全局变量使用难点. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan