8
A
回答
2
在内部创建的变量根据定义,方法(例如,main)是本地的。但是,您可以在方法之外创建一个全局变量,并从任何其他方法的角度访问和更改其值。
要更改其值,请使用global
关键字。
9
你想要什么是不可能的*。你可以在全局命名空间中创建一个变量:
myglobal = "UGHWTF"
def main():
global myglobal # prevents creation of a local variable called myglobal
myglobal = "yu0 = fail it"
anotherfunc()
def anotherfunc():
print myglobal
不要这样做。
函数的全部要点是它需要参数。只需将参数添加到您的功能。如果你发现你需要修改很多功能,这表明你应该将它们收集到一个班级中。
*
为了详细说明为什么这是不可能的:python中的变量没有声明 - 它们是在执行赋值语句时创建的。这意味着下面的代码(从张贴astronautlevel代码派生)将打破:
def setcake(taste):
global cake
cake = taste
def caketaste():
print cake #Output is whatever taste was
caketaste()
Traceback (most recent call last):
File "prog.py", line 7, in <module>
caketaste()
File "prog.py", line 5, in caketaste
print cake #Output is whatever taste was
NameError: global name 'cake' is not defined
这是因为当caketaste
被调用时,没有分配给cake
发生。它只会在调用setcake
后才会发生。
您可以在这里看到的错误:http://ideone.com/HBRN4y
1
您需要使用global
语句。这些相对简单。为此,只需在定义变量本身之前将变量定义为全局变量。 例如:
def setcake(taste):
global cake
cake = taste
def caketaste():
print cake
setcake('tasty')
caketaste() #Output is tasty
编辑: 对不起,看来我误解你的问题。请允许我现在尝试正确回答它。
def printcake():
print cake #This function prints the taste of cake when called
def setcake(taste, printq):
global cake #This makes sure that cake can be called in any function
cake = taste #sets cake's taste
if printq: #determines whether to print the taste
printcake()
setcake('good', True) #Calls the function to set cake. Tells it to print result. The output is good
的输出,如在代码:http://ideone.com/dkAlEp
+1
如果你在setcake之前调用'caketaste',会发生什么? – Marcin 2014-02-17 16:42:27
相关问题
- 1. Javascript:函数内的全局变量
- 2. Python的全局和局部变量
- 3. 全局变量的函数
- 4. 函数内使用全局变量?
- 5. Python全局与局部变量?
- 6. Python中函数内部的全局列表变异
- 7. 全局变量不是全局的 - 仅在函数内
- 8. 类和函数内部的全局变量PHP
- 9. 从模块内部的函数更新全局变量
- 10. 在函数内部访问被重写的全局变量
- 11. 如何更新全局变量的函数内部和angularjs
- 12. 函数内部的全局变量值为NULL
- 13. 函数内部的JavaScript全局变量定义
- 14. 如何修改函数内部的全局变量?
- 15. 从函数内部不能访问全局变量? (JavaScript)的
- 16. AS3(或AS2) - 作为本地内部函数的全局变量
- 17. 从PHP中的函数内部访问全局变量
- 18. 的Python:与局部/全局变量引用/分配内循环
- 19. Python + =与.extend()在一个全局变量上的函数内
- 20. Python局部变量和函数
- 21. 全局变量和函数
- 22. Python共享全局变量仅适用于函数内部的功能
- 23. 从函数内部声明全局变量?
- 24. 从事件处理函数内部为全局变量赋值?
- 25. PHP全局变量内部独立函数
- 26. 全局变量不能在函数内部访问
- 27. 如何从函数内部声明一个全局变量?
- 28. 函数内部无法获取全局变量(javascript)
- 29. JavaScript全局变量undefined函数内部有时
- 30. Python全局变量__
你就不能传递变量作为自变量? – 2013-05-11 22:41:44
是的,我可以,但我只是想看看是否有可能在主函数内部定义全局变量,也许这是一个坏主意...... – Dnaiel 2013-05-11 22:42:18
全局变量只有当你有reallllllyyyy长代码时才会变得讨厌。但对于较小的代码,它们很好。 – astronautlevel 2013-05-11 23:11:55