NoneType object has no attribute ...
означает, что у вас есть объект None
, и вы пытаетесь использовать атрибут этого объекта.
В вашем случае вы делаете q.get(...)
, поэтому q
должен быть None
. Поскольку q
является результатом вызова nse.get_quote(...)
, эта функция должна иметь возможность возврата None
. Вам нужно будет настроить свой код для учета этой возможности, например, проверить результат, прежде чем пытаться его использовать:
q = nse.get_quote(stock)
if q is not None:
print ...
Корень проблемы, скорее всего, в том, как вы читаете файл , stock
будет включать в себя новую строку, поэтому вы должны отключить это перед вызовом nse.get_quote
:
q = nse.get_quote(stock.strip())
Вы не передаете функцию std::for_each
, вы передаете функтор (объект, который действует как функция). Когда возвращается std::for_each
, возвращается объект функции, который вы передали. Объект функции имеет тип CalculateAverage
, но вы пытаетесь присвоить его int
. Таким образом, оператор преобразования выбран для преобразования возвращенного CalculateAverage
в double
, а затем используется для инициализации average
.