Python 怎么从定义的函数之外调用其中的变量

如题所述

这涉及到变量的生命周期问题,一般的,在函数里面声明的变量在函数外是不起作用的。

一个比较简单的解决办法是你在函数外就先声明这个变量,声明成全局变量。然后在函数里面进行操作和赋值。

最后就能在函数外获取变量的值了。例如:

x = 0
def a():
    x = 2
if __name__ == '__main__':
    a()
    print x

最终x打印出来的结果就是2

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-04
# -*- coding:utf8 -*-

from Tkinter import *
from tkFileDialog import
askopenfilename
root = Tk()
root.title()
root.geometry()
def open_file():
file_path = askopenfilename(filetypes=(("files", "*.txt"),("All files", "*.*")))
t.insert(END, file_path +'\n')
print file_path
print file_path
t = Text()
t.pack()
Button(root, text="Open File",command=open_file).pack()
root.mainloop()

按你的思路来啊,首先说为什么会报错。。你发现你定义了一个open_file函数之后就直接print file_path了嘛,可是这个时候file_path还没定义诶。。然后你这个file_path是一个局部变量,想要在函数外部使用必须global。。
# -*- coding:utf8 -*-
from Tkinter import *
from tkFileDialog import askopenfilename
root = Tk()
root.title()
root.geometry()
file_path = askopenfilename(filetypes=(("files", "*.txt"),("All files", "*.*")))
def open_file():
global file_path
t.insert(END, file_path +'\n')
print file_path
print file_path
t = Text()
t.pack()
Button(root, text="Open File",command=open_file).pack()
root.mainloop()

所以代码就成了这样本回答被提问者采纳
第2个回答  2016-11-27
def test():
    global x
    x=2
test()    
print(x)

 加global就可以

第3个回答  2017-07-27
用def关键字,括号里是参数列表def add(a, b): return a+b#下面调用print add(1, 2)
相似回答