#python-3.x
Вопрос:
Пытаюсь создать одноэлементный класс для извлечения и управления данными, как показано ниже, но я продолжаю получать ошибку времени выполнения, не уверен, что cls.stock_data
здесь тоже правильно.
class StockData: __instance = None def __init__(self): raise RuntimeError("Call instance()") @classmethod def instance(cls): if cls.__instance is None: cls.__instance = cls() cls.__instance.__dict__ = {} cls.stock_data = {} return cls.__instance def save_stock_data_from_yahoo(self, stock_symbol): import urllib.request import json url = "http://finance.yahoo.com/d/quotes.csv?s=" stock_symbol "amp;f=sl1d1t1c1ohgvamp;e=.csv" response = urllib.request.urlopen(url) data = response.read().decode("utf-8") data = data.split(',') self.stock_data = { "symbol": data[0], "last_trade_price": data[1], "date": data[2], "time": data[3], "change": data[4], "change_in_percent": data[5], "open": data[6], "high": data[7], "low": data[8], "volume": data[9], "average_daily_volume": data[10], "previous_close": data[11], "price_per_sales": data[12], "price_per_book": data[13], "pe_ratio": data[14], "dividend_per_share": data[15], "dividend_yield": data[16], "earnings_per_share": data[17], "ebitda": data[18], "market_cap": data[19], "one_year_target_price": data[20], "price_earnings_ratio": data[21], "price_earnings_growth_ratio": data[22], "price_sales_ratio": data[23], "price_book_ratio": data[24], "short_ratio": data[25], "day_range": data[26], "day_range_realtime": data[27], "year_range": data[28] } def get_stock_data(self): print(self.stock_data) return self.stock_data StockData.instance()
Комментарии:
1. Ты воспитываешь
RuntimeError
__init__
ребенка . Если вы не хотитеRuntimeError
, чтобы всякий раз, когда ваш объект инициализируется, не делайте этого.2. Кстати, с какой стати ты это делаешь
cls.__instance.__dict__ = {}
???