【问题标题】:nameError: name 'pivots' is not definednameError:名称“枢轴”未定义
【发布时间】:2021-04-13 05:36:01
【问题描述】:

您能帮我解决以下问题吗? 我确实在 python 中编写了一个模块。对于下一个模块,我需要以下变量或值: lastprice 和 lastpivotprice

需要什么定义或脚本更改,这两个变量是全局变量)?

实际上,如果我尝试在模块外调用 lastpivotprice,我会收到以下错误消息: nameError: name 'pivots' 未定义

模块代码:checkpivots.py

    try:  
      df['High'].plot(label='high')

      pivots =[]
      dates = []
      counter = 0
      lastPivot = 0

      Range = [0,0,0,0,0,0,0,0,0,0]
      daterange = [0,0,0,0,0,0,0,0,0,0]

      for i in df.index:
        currentMax = max(Range , default=0)
        value=round(df["High"][i],2)
        Range=Range[1:9]
        Range.append(value)
        daterange=daterange[1:9]
        daterange.append(i)

      if currentMax == max(Range , default=0):
          counter+=1
      else:
          counter = 0
      if counter ==  5:
          lastPivot=currentMax
          dateloc =Range.index(lastPivot)
          lastDate = daterange[dateloc]

          pivots.append(lastPivot)
          dates.append(lastDate)
   
            
    except Exception:
      print("-")

    lastpivotprice = pivots[-1]
    
    lastprice=df.iloc[-1]['Close'] #read value in the last row in col 'close'
    lastprice2 = df['Close'].values[-2] #read value in the last row minus2 in col 'close'
   
    #print (lastprice)        
    # print (lastpivotprice)
    # print (lastprice2)

【问题讨论】:

    标签: module global-variables jupyter


    【解决方案1】:

    如果要将每个模块中的变量作为全局变量,则必须将它们设置为全局变量。例如看下面这段代码:

    c = 0 # global variable
    
    def add():
        global c
        c = c + 2 # increment by 2
        print("Inside add():", c)
    
    add()
    print("In main:", c)
    

    如果从 c 中删除 global,则 c 在 MAIN 中仍为 0。

    【讨论】:

    • 确实写了全局 lastpivotprice,但得到了相同的错误代码。 NameError Traceback(最近一次调用最后)~\checkpivots.py in 39 40 global lastpivotprice ---> 41 lastpivotprice = pivots[-1] 42 43 NameError: name 'pivots' is not defined
    • 发生这种情况是因为枢轴是try block 中的local variable。您应该在 try 块之外初始化 pivots 变量。然后在你的第二个文件中导入所有内容,并调用 pivots.我会给你一个对我有用的例子,让你了解它是如何工作的。您有一个名为 test.py test.py pivots = [] try: pivots.append(1) print(pivots) except Exception: print("-") 的模块文件在您的第二个 py 文件中,您可以获取 pivots list test2.py from test import * print("Pivots are: ") print(pivots)
    猜你喜欢
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2021-04-15
    • 2019-01-26
    • 2021-10-05
    • 2017-08-16
    • 2019-08-18
    相关资源
    最近更新 更多