Итак, моя любимая функция Spyder - это обозреватель переменных, но меня расстраивает, когда способ сохранения переменных Spyder приводит к тому, что мой код ведет себя иначе, чем в других средах. В частности, это приводит к тому, что функции обращаются к переменным, которые не должны входить в его область действия. Например:
def get_dataset():
# Returns dataset
def compute_betas():
dataset = get_dataset()
n = len(dataset)
xBar = sum([datum[0] for datum in dataset]) / n
yBar = sum([datum[1] for datum in dataset]) / n
beta_1_hat = (sum([(datum[0] - xBar) * (datum[1] - yBar) for datum in data]) # Note that data hasn't been define yet in this function
/ sum([(datum[0] - xBar)**2 for datum in data]))
beta_0_hat = yBar - beta_1_hat * xBar
return (beta_0_hat, beta_1_hat, regression(beta_0_hat, beta_1_hat))
if __name__=="__main__":
data = get_dataset()
compute_betas()
Когда я запускаю это, я не получаю никаких ошибок, и он даже ведет себя так, как ожидалось, несмотря на то, что не определил данные переменных в computing_betas () до ссылки на него. Подобные вещи приводят к тому, что я не понимаю, что совершил ошибку, по крайней мере, вскоре после того, как я sh осознал это.
Есть ли способ переключить такое поведение в Spyder? Я пробовал поискать в Google и настройках, но ничего не нашел.
Спасибо!