Python3.X新特性之print和exec


  print

  print 現在是一個函數,不再是一個語句。<語法更為清晰>

  實例1

  打開文件 log.txt 以便進行寫入並將對象指定給 fid。然后利用 print將一個字符串重定向給文件 fid

  fid=open("log.txt",'w')

  print("log.txt", file=fid)

  print("hello")

  #fid = open("log.txt", 'w')

  #print>>fid, "log text"

  #print "hello"

  #print("Foo", "Bar", sep="%")

  Python3.X執行結果:

    #fid=open("log.txt",'w')

  #print("log.txt", file=fid)

  #print("hello")

  fid = open("log.txt", 'w')

  print>>fid, "log text"

  print "hello"

  #print("Foo", "Bar", sep="%")

  Python2.X執行結果:

  實例2

    print("Foo", "Bar", sep="%")

  #fid=open("log.txt",'w')

  #print("log.txt", file=fid)

  #print("hello")

  #fid = open("log.txt", 'w')

  #print>>fid, "log text"

  #print "hello"

  print("Foo", "Bar", sep="%")

  Python3.X中執行結果:

  exec

  exec()作為函數,只操作globals()locals()函數返回的字典。locals()函數返回的字典實際上是局部變量的一個副本。exec()函數中進行的賦值只修改了局部變量的這份副本,而非局部變量本身。

  

  實例:

  def foo():

  exec('a=4')

  print(a) 

  foo()

  #def foo():

  # _locals = locals()

  # exec('a=4',globals(),_locals)

  # a = _locals['a']

  #print (a)

  #foo()

  Python2.X中執行結果:

    Python3.X中執行結果:

    #def foo():

  # exec('a=4')

  # print(a)

  #foo()

  def foo():

  _locals = locals()

  exec('a=4',globals(),_locals)

  a = _locals['a']

  print (a)

  foo()

  Python3.X中執行結果:

 

原文鏈接:http://www.maiziedu.com/wiki/python/exec/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM