python - Python 没有检测到语法错误
问题描述
我一直在尝试使用 sort 函数对数字数组进行排序,但我忘了写括号。
arr.sort
代替
arr.sort()
我的问题是为什么 python 不能检测到这个错误并像 Java 一样通知我?该程序一直编译良好,但因为我是按升序输入数字,所以问题不会出现。
解决方案
arr.sort
在语法上是有效的。这不是您想要的语法。从句法上讲,arr.sort
它是一个属性访问表达式,用于计算结果为的sort
属性arr
;从语义上讲,whenarr
是一个列表,它arr.sort
评估为arr
'方法的方法对象sort
,所以它在运行时也很好。
它有点像 Java 中的方法引用,但由于 Python 是动态类型的并且具有方法对象,因此它不需要遍历 Java 8 必须添加的所有函数式接口和 poly 表达式以支持list::sort
语法。
语法错误仅适用于完全无效的语法。
推荐阅读
- python - 奇怪的 random.randint 行为
- terminal - 未找到 Command Brew?
- c# - 有没有办法创建许多输入参数?
- elasticsearch - 想在同一台机器上设置一个两节点的弹性搜索集群
- entity-framework - ASP.NET Core - 如何处理范围服务内的异常
- python - 对于 Codeforces,输出返回 2 而不是 1
- python - 使用 Python 注入器模块复制指南 @Named
- android - 是否可以使用 Java 实现与 Coroutines 相同的效率?
- javascript - Chart.JS 获取图表的 Json 数据并返回类型等于特定类型的数据集
- r - 使用 R 中的频率表确定收入等级的中位数