![](/img/trans.png)
[英]I have a method / function in python in which i'm trying to get a return value which i can then use as a variable in another function
[英]I'm trying to use a variable outside of its function in python
我不確定如何讓我的 ans_label 訪問我的 ans_string,因為它是在 function ssInterpret() 中定義的。
def ssInterpret():
#region=(x, y, width, height)
time.sleep(5)
myScreenshot = pyautogui.screenshot(region=(400, 320, 800, 500))
myScreenshot.save(imgPath)
#reads the image
img = cv2.imread(imgPath)
text = pytesseract.image_to_string(img)
q = text
#completes the answer search
results = brainlypy.search(q)
question = results.questions[0]
print('URL: '+'https://brainly.com/task/'+str(question.databaseid))
print('QUESTION:',question)
print('ANSWER 1:', question.answers[0])
if question.answers_count == 2:
print('ANSWER 2:', question.answers[1])
ans_string = str(question.answers[0])
answer_label = Label(root, text=ans_string)
首先,你的function需要返回答案:
def ssInterpret():
... # most of function elided.
return ans_string
#then call the function
ans = ssInterpret()
answer_label = Label(root, text=ans)
在代碼頂部將ans_string
初始化為ans_string = ""
。 然后在 function ssInterpret()
內的ans_string = str(question.answers[0])
之前添加一行global ans_string
。 在answer_label = Label(root, text=ans_string)
) 之前調用ssInterpret()
) 。 您的代碼現在應該可以按預期工作。
修改后的完整代碼:
ans_string = ""
def ssInterpret():
#region=(x, y, width, height)
time.sleep(5)
myScreenshot = pyautogui.screenshot(region=(400, 320, 800, 500))
myScreenshot.save(imgPath)
#reads the image
img = cv2.imread(imgPath)
text = pytesseract.image_to_string(img)
q = text
#completes the answer search
results = brainlypy.search(q)
question = results.questions[0]
print('URL: '+'https://brainly.com/task/'+str(question.databaseid))
print('QUESTION:',question)
print('ANSWER 1:', question.answers[0])
if question.answers_count == 2:
print('ANSWER 2:', question.answers[1])
global ans_string
ans_string = str(question.answers[0])
ssInterpret()
answer_label = Label(root, text=ans_string)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.