Python 打印函数的返回。UnboundLocalError:局部变量';文件';分配前参考

Python 打印函数的返回。UnboundLocalError:局部变量';文件';分配前参考,python,function,Python,Function,这一小段代码有问题。获取标题中的错误。有没有人能帮我修一下,或者告诉我哪里出了问题。谢谢 import tkinter as Tk from tkinter import filedialog def chooseDcmFile(): root.filename = filedialog.askopenfilename(initialdir="/", title="Select dcm File", filetypes=("dcm files", "*.dcm")) file

这一小段代码有问题。获取标题中的错误。有没有人能帮我修一下,或者告诉我哪里出了问题。谢谢

import tkinter as Tk

from tkinter import filedialog 

def chooseDcmFile():

  root.filename = filedialog.askopenfilename(initialdir="/", title="Select dcm File", filetypes=("dcm files", "*.dcm"))

  file = root.filename

  return(file)


from pydicom import dcmread

def dcmread():

   if file == none:

    file = chooseDcmFile()

   dcmFullData=dcmread(file)

   return (dcmFullData)   

print dcmread() 

也许你的意思是:

import tkinter as Tk

from tkinter import filedialog 

def chooseDcmFile():
  root.filename = filedialog.askopenfilename(initialdir="/", title="Select dcm File", filetypes=("dcm files", "*.dcm"))
  return root.filename


from pydicom import dcmread

def dcmreader():
    file = chooseDcmFile()
    dcmFullData = dcmread(file)
    return dcmFullData

print(dcmreader())

为什么要导入
dcmread
,然后立即将其重新定义为
def dcmread()
?新函数中的
file
是什么?我本可以将其定义为其他内容,但我的函数与导入的模块相同,以使我更易于读取,但这没有帮助,因为您的
def dcmread()
使导入变得多余。您的新函数现在是递归的!抱歉,我没有编写代码…正在导入的模块是dcmread。我定义的函数是dcmreader(请注意末尾的er)。我的观点是,我一直保持这两个相似,以使我自己更容易,但我理解你的观点。