前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python DEBUG

Python DEBUG

作者头像
林清猫耳
发布2018-04-26 15:14:16
8420
发布2018-04-26 15:14:16
举报
文章被收录于专栏:我爱编程我爱编程
代码语言:javascript
复制
>>> l = [3]
>>> l()
Traceback (most recent call last):
  File "<pyshell#77>", line 1, in <module>
    l()
TypeError: 'list' object is not callable

是把list对象当函数使了。 l = [3] 然后执行了l()


代码语言:javascript
复制
>>> k = []
>>> k = k.append(4)
>>> k
>>> k
>>> print(k)
None
>>> k = k.append(4)
Traceback (most recent call last):
  File "<pyshell#103>", line 1, in <module>
    k = k.append(4)
AttributeError: 'NoneType' object has no attribute 'append'

append方法是没有返回值的。也就是说,上述语句第一次会成功执行,并且将k赋值为None;第二次调用就会报错,因为None是不能调.append方法的,修改方法也简单,k.append(i)就可以了,不要接返回值。


self. & self._

属性赋值时,默认自动调用setattr方法

  1. self.是对属性的访问,使用它的时候编译器会判断_是否为空,为空的话自动实例化。会自动访问getset方法。
  2. _是对实例变量的访问,我们没有实例化它,不能使用。
  3. 对类里局部变量访问使用_,外部变量则用self.
  4. getter方法中,不要再使用self。否则会重复调用getter方法,造成死循环。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.03.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档