python变量赋值后的类型总是tuple——一个逗号引发的血案

问题背景

今天准备用python写个mysql连接脚本,实现脚本执行sql语句,哪知脚本写好了运行时一直报一个mysql连接入参类型错误的提示,提示我host这个变量的值不是str类型,仔细检查一番,cfg配置的类型没错啊,下面是引用配置文件的地方,乍一眼也看不出来问题。
 

原因排查

 为了找到原因,于是开始debug,如下图

的确类型有问题,但是为啥只有最后一个变量类型是对的呢?

我再次陷入迷茫,并且开始怀疑人生,查了半天类型定义方式、面向对象的语法,排除了所有可能之后依然百思不得其解;

古人诚不欺我也,“不识庐山真面目,只缘身在此山中”,我转头向同行发出援助,没想到同行马上发现了问题所在:

python3.6定义变量的语法特殊性:变量定义代码行每个变量的值后面都多了一个逗号,而python会将变量值后有逗号的变量解释为“tuple”类型

解决办法

发现了问题之后,马上把逗号去掉在此debug,果然变量的类型正确了! 

 结语

用其他语言比如Java、Go等编程时,我们经常都会因为少了一个逗号、分号、括号引起很多的报错,然而python作为一种解释型语言,在语法格式上常犯的错误则是:缩进不正确多了逗号分号或空格,需要养成良好的编程习惯才能减少bug的产生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值