python - 我是 Python 的初学者,只是想知道将变量放在函数之前和函数内部之间有什么区别?
问题描述
有什么区别?
var=0
def abc():
和
def abc():
var=0
我对这个世界还很陌生,但我一直对 CS 充满热情。
解决方案
如果你把你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
函数中可见
推荐阅读
- mysql - 这两个是不同的 ```RLIKE ^[^aeiou]``` 和 ```NOT RLIKE ^[aeiou]```?
- ruby-on-rails - 验证给我不正确的结果
- php - 如何使用 html 'id' 属性访问 php 页面中的表单详细信息
- android - 弹出菜单在 Android 中无法按预期工作
- graphql - 如何在 apollo-client 中使用枚举?
- jaws-screen-reader - 为什么 JAWS 不阅读整个句子?
- ios - 将 UI 图像定位在 UI 标签的文本“中间”
- javascript - 检索 React.js 元素的 ID
- angular - 如何循环遍历 html 中的 Set
- scala - 如何在 Scala Dataframe 中显示分组数据