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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 怎么从定义的函数之外调用其中的变量相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

参考技术A # -*- 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()

所以代码就成了这样本回答被提问者采纳
参考技术B def test():
    global x
    x=2
test()    
print(x)

 加global就可以

参考技术C 用def关键字,括号里是参数列表def add(a, b): return a+b#下面调用print add(1, 2)

python怎么调用自己写的函数

参考技术A 直接在你需要调用的地方写上函数名字加括号就可以 参考技术B 函数调用的基本语法格式如下所示:
[返回值] = 函数名([形参值])
其中,函数名即指的是要调用的函数的名称;形参值指的是当初创建函数时要求传入的各个形参的值。如果该函数有返回值,我们可以通过一个变量来接收该值,当然也可以不接受。

以上是关于Python 怎么从定义的函数之外调用其中的变量的主要内容,如果未能解决你的问题,请参考以下文章

python怎么调用自己写的函数

python中如何调用自己写的函数

Python—闭包

RIDE如何调用自定义Python文件中的函数

python的函数里面定义的变量在函数外面怎么用?

python闭包