我試圖從main.py獲取用戶輸入,然後將輸出定製到所述用戶輸入。我不僅得到這個錯誤,而且似乎我的runAnalytics正在運行,當我啓動main.py時,而不是當我點擊按鈕命令時這樣做。Python AttributeError:'str'對象沒有屬性'get_price'
main.py
import runAnalytics
import tkinter
import os
import centerWindow
loadApplication = tkinter.Tk()
loadApplication.title("Stock Analytics")
loadApplication.geometry("1080x720")
label1 = tkinter.Label(loadApplication, text = "Ticker")
input1 = tkinter.Entry(loadApplication)
loadAnalytics = tkinter.Button(loadApplication, text = "Load Analytics", command = runAnalytics.run(input1))
centerWindow.center(loadApplication)
loadAnalytics.pack()
label1.pack()
input1.pack()
loadApplication.mainloop()
runAnalytics.py
from yahoo_finance import Share
import tkinter
import os
import centerWindow
def run(input1):
ticker = Share(input1)
loadAnalytics = tkinter.Tk()
loadAnalytics.title("$" + ticker + " Data")
loadAnalytics.geometry("1080x720")
print ("Price per share: " + ticker.get_price())
ticker.refresh()
print ("Price per share: " + ticker.get_price())
print("The dividend yield is: " + ticker.get_dividend_yield())
print("The 52 week low is: " + ticker.get_year_low())
print("The 52 week high is: " + ticker.get_year_high())
print("The volume is: " + ticker.get_volume())
print("The previous close was: " + ticker.get_prev_close())
print("The previous open was: " + ticker.get_open())
loadAnalytics.mainloop()
錯誤消息:
Traceback (most recent call last): File "C:\Users\MyName\Documents\Python Projects\MarketData\main.py", line 13, in loadAnalytics = tkinter.Button(loadApplication, text = "Load Analytics", command = runAnalytics.run(input1)) File "C:\Users\MyName\Documents\Python Projects\MarketData\runAnalytics.py", line 12, in run print ("Price per share: " + ticker.get_price()) AttributeError: 'str' object has no attribute 'get_price'
確實很奇怪。你可以在前面插入'print(type(ticker))'並分享結果嗎? –
你的問題是與共享誰沒有返回一個對象,如你所期望的,但一個字符串。這就是爲什麼python無法找到「get_price」屬性的原因。 –
'def run(input1):'這裏引用的代碼與你運行的真的完全一樣嗎?看起來'Share'對象是'str',但這絕對不會發生在給予'yahoo_finance' API的情況下。 – Messa