Kodėl „Python“ sąrašas [] automatiškai yra globalus?

Tai keistas elgesys.

Išbandykite:

rep_i=0
print "rep_i is" , rep_i
def test():
  global rep_i #without Global this gives error but list , dict , and others dont
  if rep_i==0:
    print "Testing Integer %s" % rep_i
    rep_i=1
  return "Done"

rep_lst=[1,2,3]


def test2():
  if rep_lst[0]==1:
    print "Testing List %s" % rep_lst
  return "Done"


if __name__=="__main__":
  test()
  test2()

Kodėl sąrašo nereikia skelbti pasauliniu? Ar jie automatiškai yra globalūs?

Manau, kad tai tikrai keista, aš dažniausiai naudoju sąrašą ir net nenaudoju globalaus mums, kad jie būtų globalūs .....

9
задан Phyo Arkar Lwin 13 June 2011 в 11:00
поделиться