Python 怎么从定义的函数之外调用其中的变量
发布网友
发布时间:2022-05-09 14:34
我来回答
共4个回答
热心网友
时间:2024-02-02 07:21
这涉及到变量的生命周期问题,一般的,在函数里面声明的变量在函数外是不起作用的。
一个比较简单的解决办法是你在函数外就先声明这个变量,声明成全局变量。然后在函数里面进行操作和赋值。
最后就能在函数外获取变量的值了。例如:
x = 0
def a():
x = 2
if __name__ == '__main__':
a()
print x
最终x打印出来的结果就是2
热心网友
时间:2024-02-02 07:21
# -*- 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()
所以代码就成了这样
热心网友
时间:2024-02-02 07:22
def test():
global x
x=2
test()
print(x)
加global就可以
热心网友
时间:2024-02-02 07:22
用def关键字,括号里是参数列表def add(a, b): return a+b#下面调用print add(1, 2)