【问题标题】:How to declare python global list如何声明python全局列表
【发布时间】:2012-08-04 13:40:51
【问题描述】:

我在声明列表时遇到了一些问题。似乎我无法删除列表中的所有元素。在reset_a 打印输出中,它显示一个空列表,但在检查myFunction 中的列表之后,前一个元素仍在列表中。如何声明一个全局列表并将其用于所有其他定义的列表?

a = []

def reset_a():
    global a
    del a[:]
    print a

def myFunction():
     global a
     #check other stuffs........... then..
     print a
     if data not in a:
         a.append(data)
         time.sleep(5)
         reset_a()

if __name__=='__main__':
     while True:
        myFunction()

已编辑:我找到了完成它的方法。

global a
a = []

def reset_a():
    del a[:]
    print a

def myFunction():
     #check other stuffs...........and get 'data' then..
     print a
     if data not in a:
         a.append(data)
         time.sleep(5)
         reset_a()

if __name__=='__main__':
     while True:
        myFunction()

【问题讨论】:

  • 为什么需要使用全局变量?
  • 我只是尝试出错兄弟,因为我是 python 新手.. 但没有运气让它工作.. =\
  • IIRC 官方 python 教程并不提倡像这样广泛使用全局变量
  • my_function() 可能在 reset_a() 清除后再次将相同的元素放入列表中。
  • 您能否完成该问题以作为您遇到的问题的一个有效示例?目前,无法知道列表是如何被修改的,data 也没有定义。

标签: python global-variables


【解决方案1】:

rest_a() 只有在a 中没有新的data 时才会执行

【讨论】:

  • 是的..#check stuffs 将检查它,然后使用data 查看列表,如果不在a 中,它将执行.. 我的目标有时是这样的。
  • 如果您想获得帮助,请发布一个演示问题的工作示例。
猜你喜欢
  • 2019-11-26
  • 1970-01-01
  • 2014-10-30
  • 2017-06-02
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多