为什么会失败?

我看了这么长时间,以至于我必须先看一下它. 这个 代码: 课程: ############################# ######### def写(self,value,row = none,col = none,len = none): 打印isInstance(value,str) #错误发生在此行 打印Len(值) ############################# ###### 如果__name__ ==" __ -main __": p = page() P.Write("香蕉") 正在抛出这个错误: 真的 Trackback(最近的最新电话): 文件" p2.py",第13行,在? P.Write("香蕉") 文件" p2.py",第7行,在写 打印Len(值) typeError:"非电视"对象不可呼应 我想念什么?

# 回答1

克里斯·库尔维(Chris Curvey)写道: 您正在覆盖Len的名字,所以这等同于写作 无(值) 这显然是一个错误. - - Erik Max Francis && ma*@alcyone.com && http://www.alcyone.com/max/ __美国加利福尼亚州圣何塞,美国加利福尼亚州&& 37 20 N 121 53 W &&&tsftDotiote / \上帝是爱,但以书面形式得到它. \ __/吉普赛玫瑰李
# 回答2

克里斯·库尔维(Chris Curvey)写道: 更紧密地读取错误,并检查失败的行, 您可以看到唯一的呼叫是len(),但错误是 告诉您这个名字" Len"实际上与无关! 怎么可能 那会发生吗? 检查您的参数列表到Write()方法... 不要使用内置的名称,您的生活会更轻松. :-) -peter
# 回答3

在文章<3f ***************@engcorp.com>中,彼得·汉森(Peter Hansen)写道: 最简单的方法是将编辑器与 Python模式. 确保它以不同的颜色显示内置. 然后,您将立即知道(在编辑时) 意外重新定义了内置. - - 格兰特·爱德华兹·格兰特·尤! 我称之为"沙丁鱼 在小麦上! visi.com
# 回答4

chris> def写(self,value,row = none,col = none,len = none): 您在函数签名中覆盖了len()内置的^^^. Skip
# 回答5

grdydeydey@visi.com(Grant Edwards)写道:最简单的方法是使用具有Python模式的编辑器. 确保它以不同的颜色显示内置. 然后,当您不小心重新定义内置时,您将立即知道(编辑). 您不会碰巧知道如何为Python模式执行此操作? emacs-thriterate-y'rs, 约翰
# 回答6

Erik Max Francis 写道:最新版本将自动执行. 只是要检查(我正在使用修补版本,所以有点痛苦 Switch):Python-Mode SF Project重点的最新版本 诸如" Len"和" list"之类的内置,而不仅仅是"打印"之类的关键字? 约翰
# 回答7

约翰>只是要检查(我正在使用修补版本,所以有点像 约翰>切换的痛苦):Python模式SF的最新版本 John> Project Project强调了" Len"和" List",不仅仅是 约翰>"打印"之类的关键字? 我正在运行4.38. 这是它知道的关键字: "和""断言"" break"" class" "继续"" def"" del"" elif" "否则"" exc ept"" exec" for" 从""全局"" if""导入"中. "在"是""" lambda""不" "或""通过""打印""升起" "返回"""""屈服" 因此,不,内置的不是关键字. 你可以轻松 扩展列表. 跳过

标签: python

添加新评论