我對 python 非常陌生,所以對 OOP 和課程都很陌生(我最初是 MATLAB 用戶作為工程師......)所以請盡可能多地教我。無論如何,我正在嘗試執行以下操作。
創建一個名為 Stock 的類 - 如下所示
class Stock : def __init__(self,estimate,earning) self.estimate = estimate # estimation of quarterly earnings self.earning = earning # actual quarterly earnings JPM(JP Morgan stock name) = Stock(11.7,10.9)但是,每個季度都會報告估計值和收入值,我想為每個創建一個數字向量。這個想法如下所示,但當然它不起作用。
JPM.estimate(1) = 11.9 # the second quarter earnings value at index 1 of the estimate JPM.estimate(2) = 12.1 # the third quarter earnings value at index 2 of the estimate JPM.estimate(3) = XX.XX # and so on.使用 .estimate(#) 只是為了展示我想要做什么。使用 .append() 或您想教我的其他方法很好。
我嘗試這樣做的原因是因為我需要 3 個向量來處理一只股票(我有大約 1000 只股票,所以最后我需要處理 3000 個向量)。所以我打算創建一個股票的實體并將 3 個向量作為實體屬性。(希望我的術語是正確的。)
- 收益向量
- 估計向量
- 報告這些收入的日期。
我是否使用了錯誤的類函式(因為它從未打算以這種方式使用?)或者我可以做些什么來實作實體屬性的這種連接,因為資料是從網路抓取中接收的?
uj5u.com熱心網友回復:
完全不清楚您要對 Stock 類做什么,但如果您只想創建按日期組織的股票價格和收益串列,您可以執行以下操作:
from collections import namedtuple, defaultdict
# Create a easily referenced tuple for defining staock data
StockData = namedtuple('StockData', ['date', 'earn', 'est'])
class Stock:
def __init__(self, data: StockData) -> None:
self._quotes = defaultdict()
self._quotes[data.date] = (data.earn, data.est)
def add(self, data: StockData) -> None:
self._quotes[data.date] = (data.earn, data.est)
def value(self, date: str) -> tuple:
# return tuple of (Earnings, Estimate) for date if it exists, else KeyError
return self._quotes[date]
def __repr__(self):
return str(self._quotes)
要使用資料加載 stock 類,您可以執行以下操作:
stk = Stock(StockData('1/20/2021', 123.5, 124.0))
stk.add(StockData('6/23/2021', 132.7, 119.4))
print(stk) 產量:
defaultdict(None, {'1/20/2021': (123.5, 124.0), '6/23/2021': (132.7, 119.4)})
并且,stk.value('1/20/2021')?產量(123.5, 124.0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/416013.html
標籤:
上一篇:C 復制賦值運算子行為
