LEGB法则,内置函数的调用过程
str='a'str()
Traceback (most recent call last):
File "<pyshell#56>", line 1, in <module>
str()
TypeError: 'str' object is not callable
第一个问题:
对于这种情况我是这么理解的,不知道对不对:
1.内置函数BIF也是当成一个变量名供python搜索的,python遇到str时,先搜索局部作用域,没有str这个变量,再去全局作用域搜索,找到了str这个变量,使用方式不是一个变量应该有的类型,所以报错
2.如果没有str='a'这个句子,那么python调用str函数的时候,也是先局部作用域搜索这个变量名,再去全局搜,找不到,最后再去内置作用域查找这个变量名,找到这个函数然后调用
第二个问题:
这些内置的BIF的名字,比如str,list,tuple等等,在调用他们的时候,python都是当作搜索变量名去搜索他们的吗 python2的 while True 每一轮循环都需要判断True是真还是假 python3不需要了 你猜猜为什么{:10_254:} kogawananari 发表于 2022-9-16 19:15
python2的 while True 每一轮循环都需要判断True是真还是假 python3不需要了 你猜猜为什么
我不知道啊,求教,谢谢{:10_291:} 因为菜所以卷 发表于 2022-9-16 19:18
我不知道啊,求教,谢谢
python3的 True不能给他赋值了 哈哈{:10_258:} kogawananari 发表于 2022-9-16 19:19
python3的 True不能给他赋值了 哈哈
可是我没有明白跟我的问题的关系,有点懵,能细说一下嘛,谢谢 壹(1)
因为现在str是变量,所以变量不能和函数一样调用,所以报错
壹(2)
找到了就返回
贰
是的 个人认为可以按照你这样去理解 临时号 发表于 2022-9-16 19:25
个人认为可以按照你这样去理解
好的好的,谢谢您 因为菜所以卷 发表于 2022-9-16 19:20
可是我没有明白跟我的问题的关系,有点懵,能细说一下嘛,谢谢
我想他是想告诉你python内置函数与python关键字不一样,python关键字不允许被赋值,但python的内置函数可以
页:
[1]