Python3.X新特性之print和exec

  printpython

  print 如今是一个函数,再也不是一个语句。<语法更为清晰>函数

  实例1spa

  打开文件 log.txt 以便进行写入并将对象指定给 fid。而后利用 print将一个字符串重定向给文件 fid3d

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

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

  print("hello")字符串

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

  #print>>fid, "log text"class

  #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/

相关文章
相关标签/搜索