当前位置:  开发笔记 > 编程语言 > 正文

关于元组的新手Python问题

如何解决《关于元组的新手Python问题》经验,为你挑选了2个好方法。

我是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

我的问题与创建"错误"对象的位置有关." , ="是做什么的?我尝试搜索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

ddaa.. 10

error, = exc.args

这是序列解包的情况.

写一个更可读的方式,以及我个人喜欢的风格是:

[error] = exc.args

理解前面的示例需要两个位:

    当赋值的左侧是递归的名称序列时,右侧的值必须是具有相同长度的序列,并且RHS值的每个项目被分配给LHS中的相应名称.

    编写了python中的单项元组(foo,).在大多数情况下,可以省略括号.特别是,它们可以在赋值运算符旁边省略.


Matthew Chri.. 5

http://www.python.org/doc/2.5.2/tut/node7.html

在5.3节中查找"序列解包".



1> ddaa..:
error, = exc.args

这是序列解包的情况.

写一个更可读的方式,以及我个人喜欢的风格是:

[error] = exc.args

理解前面的示例需要两个位:

    当赋值的左侧是递归的名称序列时,右侧的值必须是具有相同长度的序列,并且RHS值的每个项目被分配给LHS中的相应名称.

    编写了python中的单项元组(foo,).在大多数情况下,可以省略括号.特别是,它们可以在赋值运算符旁边省略.



2> Matthew Chri..:

http://www.python.org/doc/2.5.2/tut/node7.html

在5.3节中查找"序列解包".

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有