鱼C论坛

 找回密码
 立即注册
查看: 2267|回复: 8

[已解决]LEGB法则,内置函数的调用过程

[复制链接]
发表于 2022-9-16 19:11:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
str='a'
str([1,2,3])
Traceback (most recent call last):
  File "<pyshell#56>", line 1, in <module>
    str([1,2,3])
TypeError: 'str' object is not callable

第一个问题:
对于这种情况我是这么理解的,不知道对不对:
1.内置函数BIF也是当成一个变量名供python搜索的,python遇到str时,先搜索局部作用域,没有str这个变量,再去全局作用域搜索,找到了str这个变量,使用方式不是一个变量应该有的类型,所以报错
2.如果没有str='a'这个句子,那么python调用str函数的时候,也是先局部作用域搜索这个变量名,再去全局搜,找不到,最后再去内置作用域查找这个变量名,找到这个函数然后调用

第二个问题:
这些内置的BIF的名字,比如str,list,tuple等等,在调用他们的时候,python都是当作搜索变量名去搜索他们的吗
最佳答案
2022-9-16 19:25:17
(1)
因为现在str是变量,所以变量不能和函数一样调用,所以报错
(2)
找到了就返回

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-16 19:15:04 | 显示全部楼层
python2的 while True 每一轮循环都需要判断True是真还是假 python3不需要了 你猜猜为什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-16 19:18:47 | 显示全部楼层
kogawananari 发表于 2022-9-16 19:15
python2的 while True 每一轮循环都需要判断True是真还是假 python3不需要了 你猜猜为什么

我不知道啊,求教,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-16 19:19:28 | 显示全部楼层
因为菜所以卷 发表于 2022-9-16 19:18
我不知道啊,求教,谢谢

python3的 True不能给他赋值了 哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-16 19:20:46 | 显示全部楼层
kogawananari 发表于 2022-9-16 19:19
python3的 True不能给他赋值了 哈哈

可是我没有明白跟我的问题的关系,有点懵,能细说一下嘛,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-16 19:25:17 | 显示全部楼层    本楼为最佳答案   
(1)
因为现在str是变量,所以变量不能和函数一样调用,所以报错
(2)
找到了就返回

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-16 19:25:39 | 显示全部楼层
个人认为可以按照你这样去理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-16 19:26:16 | 显示全部楼层
临时号 发表于 2022-9-16 19:25
个人认为可以按照你这样去理解

好的好的,谢谢您
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-16 19:31:52 | 显示全部楼层
因为菜所以卷 发表于 2022-9-16 19:20
可是我没有明白跟我的问题的关系,有点懵,能细说一下嘛,谢谢

我想他是想告诉你python内置函数与python关键字不一样,python关键字不允许被赋值,但python的内置函数可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 11:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表