В этом проекте у меня есть два класса:
class StockEntity:
def __init__(self, ticker, exchange = 'NASDAQ'):
self.ticker = ticker
self.exchange = exchange
# Get the history
ticker = yf.Ticker(self.ticker)
self.stock_hist = ticker.history(period = "max")
class Curve(StockEntity):
def __init__(self, ticker, startdate, type_of_curve, hierarchy_order):
self.ticker = StockEntity.ticker
self.startdate = startdate
self.type_of_curve = type_of_curve
self.hierarchy_order = hierarchy_order
self.stock_hist = StockEntity.stock_hist
Идея состоит в том, что каждый экземпляр StockEntity имеет тикер и историю данных торговли акциями.
Итак, я сказал бы AAPL = StockEntity ('AAPL'). Это нормально работает. Если я хочу построить график торговых данных, я могу просто использовать значения в AAPL.stock_hist, который дает мне фрейм данных для работы.
Теперь для каждой акции я также хочу иметь возможность создавать кривые на основе вычислений.
Итак, я создал другой класс Curve, в котором я передаю объект StockEntity как свойство, идея заключалась в том, что, хотя мне нужно, чтобы объект класса Curve для 'AAPL' был (экземпляром ) сам по себе, имеет смысл использовать те же данные, что и в объекте AAPL.
Однако, когда я это сделаю:
AAPL = StockEntity ('AAPL')
, а затем
AAPL_curve = Curve (AAPL, '2020- 01-01 ',' S ', 1) я получаю сообщение об ошибке "AttributeError: объект типа" Stock_entity "не имеет атрибута' ticker '"
HUH?
Если я наберу «AAPL.ticker», он вернет «AAPL», как и ожидалось! Так что нет никаких сомнений в том, что атрибут есть.
Что мне здесь не хватает? Я все делаю неправильно?