python和c

news/2024/10/6 15:46:41 标签: 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的时候没有意识到会有这种问题。这是后来追加的一个补丁。限于修复水平,补丁没有打到最开始出现问题的地方,而是放到了最后。


http://www.niftyadmin.cn/n/5691837.html

相关文章

音视频入门基础:FLV专题(13)——FFmpeg源码中,解析任意Type值的SCRIPTDATAVALUE类型的实现

一、SCRIPTDATAVALUE类型 从《音视频入门基础:FLV专题(9)——Script Tag简介》中可以知道,根据《video_file_format_spec_v10_1.pdf》第80到81页,SCRIPTDATAVALUE类型由一个8位(1字节)的Type和…

第八篇:磁盘管理(1)

目录 6.1分区 6.1.1基本分区 6.1.1.1磁盘的相关知识 6.1.1.1.1基础知识 6.1.1.1.2命名 1.对于串口硬盘:/dev/sda、/dev/sdb、/dev/sdc......往后都是一个字母一个字母的累加 2.对于并口硬盘:/dev/hda其余相同 6.1.1.1.3磁盘的分区方式 方式1&am…

MATLAB GUI组件全解析:构建交互式应用程序

MATLAB的图形用户界面(GUI)是一个功能强大的工具,它允许开发者创建直观且用户友好的界面。这些界面,也称为应用程序或app,提供了点击控制,使得用户无需学习编程语言或输入命令即可运行应用程序。本文将详细…

基于springboot vue 电影推荐系统

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…

【代码随想录Day30】贪心算法Part04

452. 用最少数量的箭引爆气球 题目链接/文章讲解:代码随想录 视频讲解:贪心算法,判断重叠区间问题 | LeetCode:452.用最少数量的箭引爆气球_哔哩哔哩_bilibili class Solution {public int findMinArrowShots(int[][] points) {Arrays.sort…

android navigation 用法详细使用

Navigation 的关键概念 1、Navigation Graph: 定义了应用内的所有导航目的地以及它们之间的连接。 2、NavHost: 一个 UI 元素,用于承载当前的导航目的地。 3、NavController: 管理目的地之间的导航。 4、Destination: 导航图中的一个节点,用户导航到该节…

Unity实战案例全解析:RTS游戏的框选和阵型功能(3)生成范围检测框 +重置框选操作

前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(2) 生成选择框-CSDN博客 本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程 我只是对重要功能进行分析和做出笔记分享,并未无师自通&…

vite学习教程04、vue集成axios封装request工具类及应用

文章目录 前言1、安装axios2、封装request工具类3、封装api请求工具4、实战:vue中使用api请求工具类资料获取 前言 博主介绍:✌目前全网粉丝3W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技…