导入python模块

时间:2017-08-10 06:26:25

标签: python module

我在orbital.py中有一个函数:

def get_data(stock):
    yahoodata = pdr.get_data_yahoo(stock,start,end)
    return yahoodata

!jupyter nbconvert --to script orbital.ipynb

在一个单独的笔记本中,我从上面导入模块:

import orbital
from orbital import *

start = dt.date(2007,1,1)
end = dt.date.today()
stock = ['AAPL','TSLA]
get_data(stock) 

但是得到以下错误:

NameError: global name 'start' is not defined

不知道该怎么做,我的预期输出能够在第二个笔记本中灵活地改变开始和结束,并使用我从orbital.py文件导入的get_data函数。

1 个答案:

答案 0 :(得分:1)

您的函数get_data接受一个参数。它无权访问startend,因为它们不在同一名称空间中,因此无法访问。您需要这些变量作为参数传递给您的函数:

orbital.py

def get_data(stock, start, end): # receiving those variables here
    yahoodata = pdr.get_data_yahoo(stock, start, end)
    return yahoodata 

Notebook

...
df = get_data(stock, start, end) # passing those variables here