【发布时间】:2016-08-20 19:51:50
【问题描述】:
我正在尝试从 main.py 获取用户输入,然后使用该信息在 runAnalytics 上生成输出。我遇到的问题是,有时,当dividen_yield 不可用时,用户输入会产生None 值(可能是null,我不知道),然后我的整个程序将停止。但是,当有股息收益率时,它可以完美运行。
main.py
import runAnalytics
from tkinter import *
import os
import centerWindow
loadApplication = Tk()
loadApplication.title("Stock Analytics")
loadApplication.geometry("1080x720")
label1 = Label(loadApplication, text = "Ticker")
input1 = Entry(loadApplication)
loadAnalytics = Button(loadApplication, text = "Load Analytics", command=lambda: runAnalytics.run(input1))
centerWindow.center(loadApplication)
label1.pack()
input1.pack()
loadAnalytics.pack()
loadApplication.mainloop()
runAnalytics.py
from yahoo_finance import Share
from tkinter import *
import os
import centerWindow
def run(input1):
ticker = Share(input1.get())
loadAnalytics = Tk()
loadAnalytics.title("$" + "ticker" + "Data")
loadAnalytics.geometry("1080x720")
centerWindow.center(loadAnalytics)
ticker.refresh()
if ticker.get_dividend_yield() is None:
ticker.get_dividend_yield == 0
share_price = Label(loadAnalytics, text = "Share Price: " + ticker.get_price()).pack()
prev_open = Label(loadAnalytics, text = "Previous Open: " + ticker.get_open()).pack()
prev_close = Label(loadAnalytics, text = "Previous CLose: " + ticker.get_prev_close()).pack()
dividend_yield = Label(loadAnalytics, text = "Dividend Yield: " + ticker.get_dividend_yield()).pack()
year_low = Label(loadAnalytics, text = "52 Week Low: " + ticker.get_year_low()).pack()
year_high = Label(loadAnalytics, text = "52 Week High: " + ticker.get_year_high()).pack()
volume = Label(loadAnalytics, text = "Volume: " + ticker.get_volume()).pack()
loadAnalytics.mainloop()
[错误]
Tkinter 回调异常 回溯(最近一次通话最后): 调用中的文件“C:\Users\MyName\AppData\Local\Programs\Python\Python35-32\lib\tkinter__init__.py”,第 1550 行 返回 self.func(*args) 文件“C:\Users\MyName\Documents\Python Projects\DataAnalytics\main.py”,第 13 行,在 loadAnalytics = Button(loadApplication, text = "Load Analytics", command=lambda: runAnalytics.run(input1)) 运行中的文件“C:\Users\MyName\Documents\Python Projects\DataAnalytics\runAnalytics.py”,第 21 行 股息收益率=标签(负载分析,文本=“股息收益率:”+ticker.get_dividend_yield()).pack() TypeError: 'int' 对象不可调用
【问题讨论】:
标签: python tkinter typeerror python-3.5 yahoo-finance