VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • Python2 和 Python3 的区别及兼容技巧(4)

统一异常处理语法

P2 实现异常处理也能够支持两种语法。

1
2
3
4
5
try:
    let_us_cause_a_NameError
except NameError, err:
# except NameError as err:
    print err, '--> our error message'

P3 的异常处理则强制要求使用 as 关键字的方式。

1
2
3
4
try:
    let_us_cause_a_NameError
except NameError as err:
    print(err, '--> our error message')

兼容技巧:

统一使用 as 关键字的异常处理方式。

统一输入函数

P2 支持 raw_input 和 input 两个输入函数,区别在于前者仅能返回 String 类型对象,后者则支持返回数字和字符串两种数据类型对象,并且当输入为表达式时,会隐式调用 eval 函数返回其执行结果。显然的,使用 input 是更加灵活的写法。

所以 P3 统一的使用了 input 函数进行输入处理。

 

兼容技巧:

统一使用 input 内置函数。

1
2
3
4
5
# Python 2 only:
input("Type something safe please: ")
# Python 2 and 3
from future.builtins import input
eval(input("Type something safe please: "))

统一输出函数

P2 中的 print 即是关键字又是内置函数。print 'Hello world!' 为一条语句,print('Hello world!') 则为一次函数调用。

P3 统一使用 print 函数进行输出操作,其原型如下,这一改变让 P3 的输出处理变得更加简洁、强大而优雅,通过实参的传递就能替代 P2 中繁复的代码实现。

1
print(*objects, sep=' ', end='\n'file=sys.stdout, flush=False)

兼容技巧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
### 单行打印单个 String
# Python 2 only:
print 'Hello'
# Python 2 only:
print 'Hello'
### 单行打印多个 String
# Python 2 only:
print 'Hello''Guido'
# Python 2 and 3:
from __future__ import print_function    # (at top of module)
print('Hello''Guido')
### 输出重定向
# Python 2 only:
print >> sys.stderr, 'Hello'
# Python 2 and 3:
from __future__ import print_function
print('Hello'file=sys.stderr)
### 换行打印
# Python 2 only:
print 'Hello',
# Python 2 and 3:
from __future__ import print_function
print('Hello', end='')

相关教程