WWW月光WWW 发表于 2022-12-23 17:57:15

求解

为啥第一次错后面不管怎么打都是错的

tommyyu 发表于 2022-12-23 18:06:54

你把print给赋值成了name,也就赋值成了name所代表的值("老乌龟"),此时的print就变成了一个字符串,而不是内置函数,也就无法调用。
解决方法:重新打开IDLE

jackz007 发表于 2022-12-23 18:54:20

本帖最后由 jackz007 于 2022-12-23 18:57 编辑

      这一句
print=(name)
      把 BIF print() 给污染掉了,任何时候都不可以为一个 BIF 的标识符赋值
      这个问题无法解决,只能放弃这个 IDLE,另启一个新的 IDLE 环境。

isdkz 发表于 2022-12-23 21:13:40

本帖最后由 isdkz 于 2022-12-23 21:20 编辑

你把 print 给赋值成 name 了,print 原本是一个函数对象,函数对象可以调用,你给他赋值成字符串对象 name 了,

所以 print 成了一个字符串对象,字符串对象是不可调用的,你去调用一个字符串对象当然会报错了,

你只需要把字符串对象 print 给删掉就好,删掉之后他又会恢复成内置的函数对象了,

所以并不需要重新打开 idle,执行一下 del print 就好

WWW月光WWW 发表于 2022-12-24 09:36:39

tommyyu 发表于 2022-12-23 18:06
你把print给赋值成了name,也就赋值成了name所代表的值("老乌龟"),此时的print就变成了一个字符串,而不 ...

感谢!

WWW月光WWW 发表于 2022-12-24 09:38:36

感谢!

WWW月光WWW 发表于 2022-12-24 09:40:56

jackz007 发表于 2022-12-23 18:54
这一句

      把 BIF print() 给污染掉了,任何时候都不可以为一个 BIF 的标识符赋值


感谢!

WWW月光WWW 发表于 2022-12-24 09:41:48

isdkz 发表于 2022-12-23 21:13
你把 print 给赋值成 name 了,print 原本是一个函数对象,函数对象可以调用,你给他赋值成字符串对象 name ...

感谢!

sfqxx 发表于 2023-3-5 11:11:34

不要把 print 给赋值成 name ,print 原本是一个函数对象,函数对象可以调用,你给他赋值成字符串对象 name 了,

所以 print 成了一个字符串对象,字符串对象是不可调用的,你去调用一个字符串对象当然会报错了,

你只需要把字符串对象 print 给删掉就好,删掉之后他又会恢复成内置的函数对象了,

可以重新打开 idle,或者执行一下 del print 就好
del print

sfqxx 发表于 2023-3-5 17:59:24

这一句话有问题
print=(name)
您把print函数赋值了,它就不能调用了
解决办法:1.重新打开IDLE
2.del print
页: [1]
查看完整版本: 求解