m0j*_*0j0 5 python cx-oracle tuples
我是Python的新手,我正在使用该cx_Oracle模块编写一些数据库代码.在cx_Oracle文档中,他们有一个代码示例如下:
import sys
import cx_Oracle
connection = cx_Oracle.Connection("user/pw@tns")
cursor = connection.cursor()
try:
cursor.execute("select 1 / 0 from dual")
except cx_Oracle.DatabaseError, exc:
error, = exc.args
print >> sys.stderr, "Oracle-Error-Code:", error.code
print >> sys.stderr, "Oracle-Error-Message:", error.message
Run Code Online (Sandbox Code Playgroud)
我的问题与创建"错误"对象的位置有关." , ="是做什么的?我尝试搜索Python文档,搜索引擎在搜索运算符时效果不佳.:-)
我知道exc.args是一个单例元组,但我只是不理解" , ="语法.如果我删除逗号,我会收到错误消息" AttributeError: 'tuple' object has no attribute 'code'".
有人能指出我记录的地方吗?谢谢!
编辑:
无需解压缩元组即可实现:
import sys
import cx_Oracle
connection = cx_Oracle.Connection("user/pw@tns")
cursor = connection.cursor()
try:
cursor.execute("select 1 / 0 from dual")
except cx_Oracle.DatabaseError, exc:
print >> sys.stderr, "Oracle-Error-Code:", exc.args[0].code
print >> sys.stderr, "Oracle-Error-Message:", exc.args[0].message
Run Code Online (Sandbox Code Playgroud)
dda*_*daa 10
error, = exc.args
Run Code Online (Sandbox Code Playgroud)
这是序列解包的情况.
写一个更可读的方式,以及我个人喜欢的风格是:
[error] = exc.args
Run Code Online (Sandbox Code Playgroud)
理解前面的示例需要两个位:
(foo,).在大多数情况下,可以省略括号.特别是,它们可以在赋值运算符旁边省略.| 归档时间: |
|
| 查看次数: |
1605 次 |
| 最近记录: |