2024-10-01 02:18:13 发布
网友
我已经定义了一个函数,但无法将变量从define function调用到global
global
请帮我解决这个问题
这是我的密码:
def pdf_btnClicked(): PathOfPDF = askopenfile() PDFFILE = PathOfPDF.name print(PDFFILE) book = open(PDFFILE, 'rb')
只要您使用Python,就可以在局部作用域上声明变量时使用global关键字。使用它将使变量变为全局变量,代码如下所示:
def pdf_btnClicked(): global PDFFILE PathOfPDF = askopenfile() PDFFILE = PathOfPDF.name print(PDFFILE) book = open(PDFFILE, 'rb')
查看代码,我们可以推断您的问题与变量范围的概念有关
任何编程中的作用域都是程序的一个区域,在该区域中,定义的变量可以存在,超过该变量则无法访问。基本上,就其范围而言,有两种类型的变量:
在这种情况下,如果在函数内部声明变量,则无法在该函数外部使用它。这正是您的情况:您在pdf_btnClicked函数中声明了变量PDFFILE ,因此您只能使用该函数中的变量。但即便如此,您还是在调用它之外的变量。您的问题的一个基本解决方案是将PDFFILE 设置为全局变量,其解释如下
pdf_btnClicked
PDFFILE
顾名思义,全局变量是全局变量,可以被所有函数访问。如果您在函数外部(以及之前)声明PDFFILE ,您的问题将得到解决
Obs.:这里我们看到了变量作用域的两种基本类型,但根据编程语言的不同,变量的作用域可能不止两种
字体:https://www.tutorialspoint.com/cprogramming/c_scope_rules.htmhttps://www.w3schools.com/python/python_scope.asp
正确的代码
您需要的是global关键字
PDFFILE = "" def pdf_btnClicked(): global PDFFILE PathOfPDF = askopenfile() PDFFILE = PathOfPDF.name print(PDFFILE) # You need to call `pdf_btnClicked()` function book = open(PDFFILE, 'rb')
只要您使用Python,就可以在局部作用域上声明变量时使用
global
关键字。使用它将使变量变为全局变量,代码如下所示:查看代码,我们可以推断您的问题与变量范围的概念有关
任何编程中的作用域都是程序的一个区域,在该区域中,定义的变量可以存在,超过该变量则无法访问。基本上,就其范围而言,有两种类型的变量:
在这种情况下,如果在函数内部声明变量,则无法在该函数外部使用它。这正是您的情况:您在
pdf_btnClicked
函数中声明了变量PDFFILE
,因此您只能使用该函数中的变量。但即便如此,您还是在调用它之外的变量。您的问题的一个基本解决方案是将PDFFILE
设置为全局变量,其解释如下顾名思义,全局变量是全局变量,可以被所有函数访问。如果您在函数外部(以及之前)声明
PDFFILE
,您的问题将得到解决Obs.:这里我们看到了变量作用域的两种基本类型,但根据编程语言的不同,变量的作用域可能不止两种
字体:https://www.tutorialspoint.com/cprogramming/c_scope_rules.htmhttps://www.w3schools.com/python/python_scope.asp
正确的代码
您需要的是
global
关键字相关问题 更多 >
编程相关推荐