1. 变量命名要避
python内置函数的名字
初学
python,很容易犯这样的错误,即直接用set, list, tuple, dict, str, int, complex, float等作为变量名。这样会导致这些内置函数:set(), list(), tuple()等等无法执行。
例如下例,使用tuple作为变量名,再执行tuple()语句时,会
报错 ‘tuple’
object is not
callable
原因如下:
作用域优先级:
在执行
python代码时,你用的每一个变量,都需要寻找,寻找的过程遵循一定的优先级规则,下面按优先级从大到小排序
局部作用域
嵌套作用域
全局作用域
今天把最近一直在开发的小程序放安卓手机上测试一下,结果某个页面就一直报错: Uncaught TypeError: Converting circular structure to JSON
先说一下基本的环境:
系统:Android 6.0.1
手机:小米4
微信版本:6.6.6
小程序基于mpvue开发
在看到这个错误的时候,明白导致的原因应该是因为一个对象里面有循环引用,然后这个对象不幸的被JSON.stringify给调用了
可是这个有循环引用的对象在哪就不清楚了。
一开始想的是vue对象的data,因为小程序里面,jscore会把这个data stringify之后发送给webvie
Traceback (most recent call last):
File "", line 1, in
TypeError: 'list'
object is not
callable
刚开始学习
python的时候,可能会由于命名的不注意,导致也方法一直用不了,原因是在声明变量对的时候和
python内置方法冲突了,导致方法被重新定义了,这样一来,方法自然也就不存在了
解决办法:
先复制个其他的list
c = list.copy()
然后清空list列表名的列表
list.clear()
再次使用list( ),成功声明并赋值
‘xxx’
object is not
callable,“xxx”为函数,例如int,list,str。
当出现
报错 ‘xxx’ is not
callable的时候,通常都是函数名重用或者变量名重用。
网上有其他专业名词的解释,但华而不实,其本质通常都是函数名重用或者变量名重用。
当出现这个错误时查看
报错语句中用到的变量名或者函数名在其他语句中是否重用。
例:我在这里用Bettery_number定义了一个属性,又用该变量定义了一个方法名,属于重用变量名,导致出错。
大家遇到这个错误一定仔细检
例如list(enumerate(courses))。
解决方法:关闭当前