python和c

python这个语言现在用的非常流行了。拥护它的人高度赞美它,认为它高效率,功能强,现代化,限于自己的水平完全不知道它有什么问题。"因为无知而完美"。这样的语言,就给这样的人用。

我一直觉得python没什么。这不过是又一个二流的计算机语言。以前只是模糊的直觉。直到我需要检查一个编译器的问题。找出python来对比。我觉得不能忍受。

如果在函数定义过程中,函数的参数出现同名,这当然是错误。这在各种语言都不会接受的。看python怎么处理这个问题的:

def f(x,x,x,x,x,x,x,x,x,x,x,x):

... s = x+x+x+x+x+x+x+x+1;

... return def;

File "", line 3

return def;

^

SyntaxError: invalid syntax

def f(x,x,x,x,x,x,x,x,x,x,x,x):

... s = x+x+x+x+x+x+x+x+1;

... return s;

...

File "", line 1

SyntaxError: duplicate argument 'x' in function definition

当然,python程序员限于自己的水平,看不出这里有什么问题。但对比c语言,就会看出区别,下面摘取c语言编译同样的东西,给出的错误信息:

int f(int x, int x, int x, int x, int x, int x, int x, int x, int x)

{

int sum;

s= x+x+x+x+x+x+x+x+1;

return s;

}

$ cc q.c

q.c:1: error: redefinition of parameter 'x'

q.c:1: error: previous definition of 'x' was here

q.c:1: error: redefinition of parameter 'x'

q.c:1: error: previous definition of 'x' was here

q.c:1: error: redefinition of parameter 'x'

q.c:1: error: previous definition of 'x' was here

q.c:1: error: redefinition of parameter 'x'

q.c:1: error: previous definition of 'x' was here

q.c:1: error: redefinition of parameter 'x'

q.c:1: error: previous definition of 'x' was here

q.c:1: error: redefinition of parameter 'x'

q.c:1: error: previous definition of 'x' was here

q.c:1: error: redefinition of parameter 'x'

q.c:1: error: previous definition of 'x' was here

q.c:1: error: redefinition of parameter 'x'

q.c:1: error: previous definition of 'x' was here

q.c: In function f': q.c:4: error: s' undeclared (first use in this function)

q.c:4: error: (Each undeclared identifier is reported only once

q.c:4: error: for each function it appears in.)

区别在于c语言在编译函数头的时候,就已经指出了参数重复的问题。而python要等到函数编译完才发现这个问题。明显python的创造者设计python的时候没有意识到会有这种问题。这是后来追加的一个补丁。限于修复水平,补丁没有打到最开始出现问题的地方,而是放到了最后。

相关推荐
阿里嘎多学长12 分钟前
2026-04-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
m0_613856291 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
叶小鸡2 小时前
Java 篇-项目实战-苍穹外卖-笔记汇总
java·开发语言·笔记
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第22题:HashMap 和 HashSet 有哪些区别
java·开发语言·哈希算法·散列表·hash
我的xiaodoujiao2 小时前
API 接口自动化测试详细图文教程学习系列16--项目实战演练3
python·学习·测试工具·pytest
ID_180079054732 小时前
Python 实现亚马逊商品详情 API 数据准确性校验(极简可用 + JSON 参考)
java·python·json
时空系3 小时前
第10篇:继承扩展——面向对象编程进阶 python中文编程
开发语言·python·ai编程
leo__5204 小时前
IEC 104 协议 C 语言实现
c语言·数据库
CHANG_THE_WORLD4 小时前
python 批量终止进程exe
开发语言·python
古城小栈4 小时前
从 cargo-whero 库中,找到提升 rust 的契机
开发语言·后端·rust