首页 > 解决方案 > 我是 Python 的初学者,只是想知道将变量放在函数之前和函数内部之间有什么区别?

问题描述

有什么区别?

var=0 
def abc():

def abc():
    var=0

我对这个世界还很陌生,但我一直对 CS 充满热情。

标签: pythonfunctionvariables

解决方案


如果你把你var的功能放在你的鳕鱼的任何地方都可以看到,如果你把你的功能放在你的功能下,你var将只在功能中可见,并且当你使用该功能时

var1 = 10
def sum1(x):
    return x + var1 # var1 is global so can be accessed from other functions

def sum2(x):
    var2 = 12
    return x + var2 # var2 can be only accessed from sum2 function

def sum3(x):
    return var2 + x 

print(sum1(10))
print(sum2(10))
print(sum3(10))

输出:

20
22
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-233-278acebe9c9f> in <module>
     12 print(sum1(10))
     13 print(sum2(10))
---> 14 print(sum3(10))

<ipython-input-233-278acebe9c9f> in sum3(x)
      8 
      9 def sum3(x):
---> 10     return var2 + x
     11 
     12 print(sum1(10))

NameError: name 'var2' is not defined

如您所见sum3,它会抛出NameError: name 'var2' is not defined,因为var2它仅在sum2函数中可见


推荐阅读