Python del 是关键字,一般是跟空格,为什么也可以加小括号使用

bo · 2020年06月11日 · 最后由 一江春水zcc 回复于 2020年06月16日 · 2679 次阅读

官方说 del 是 The del statement 语句,也就是关键字,一般关键字用法都是后面跟空格,但是实际使用时发现,后面加括号也是可以的
如:
a =[1,2,3,4,5]
del a[0]
del(a[0])

上面两个都是可以的,但是这里肯定不是把 del 当成函数使用的
同样的还有 return 等,为什么可以这样用,感觉很容易当成函数,有没有大佬可以解释一下

共收到 2 条回复 时间 点赞
bo #1 · 2020年06月15日 Author

啊啊啊啊啊啊啊啊啊

在 python 中,小括号有三个作用:

  1. 创建一个整体,在运算时十分有用。例如:a = 3 * (1 + 2).
  2. 创建一个元组实例。例如:name_tuple = ("George", "Michel", "Lilith")
  3. callable 方法的调用,当你定义一个函数之后(或者为一个类添加 callable 方法),就可以在后面添加(),表示调用。例如:fun = lambda x: x**2,调用函数就是fun(2)

区分方法:

  1. 第一种和第二种的区分点是,小括号里有没有逗号。
  2. 判定是不是第三种的关键在于:不管是从 python 模块源码还是你自己的代码里,能否找到这个东西的函数或者类的定义。如果找不到,那么毋庸置疑是前两种。

介绍一个判定的小技巧:

在 pycharm 中打开项目,找到你要判定的关键词,然后按 Ctrl+ 鼠标左键。如果能跳转到别的地方,必定是 callable 方法的调用。

结论:

根据上面的方法我们对关键字 del 进行操作,发现并不能跳转。所以结果就很清楚了,这里的小括号仅仅只是创建一个整体的作用。由于只是单个元素,不涉及运算,小括号可有可无。之所以关键字后面接空格,是因为如果关键字没有空格分隔,那就直接连上了别的字符,关键字还是关键字吗?

另外,python 所有的关键字都在 keyword.py 里,python 有一套匹配模式来解释执行 python 代码,具体操作逻辑我就不细说了,请自行查看源码。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册