C 和 Python 中全局变量和局部变量的比较

前言

最近学习到了 Python 的全局变量和局部变量,在学习的过程中难免和 C 语言中的语法进行比较,一时有点凌乱,故借此文复习整理 。如有不严谨之处,敬请指正。

C 语言中的全局变量和局部变量

局部变量

C 语言中把定义在函数内部的变量称为局部变量,局部变量的有效作用范围局限于所在的函数内部。形参是局部变量。
使用局部变量可以避免各个函数之间的变量相互干扰。一个函数的局部变量可以与不同函数内部的局部变量同名。
除了作用于函数的局部变量以外, C 语言还允许定义作用于复合语句中的局部变量,其有效使用范围被局限于复合语句之内,一般用作小范围的临时变量。

全局变量

定义在函数外而不属于任何函数的变量称为全局变量。全局变量的作用范围是从定义开始到程序所在文件的结束,它对作用范围内所有的函数都起作用。
由于全局变量与局部变量的作用范围不同,允许它们同名。当某函数的局部变量与全局变量同名时,在该函数中全局变量不起作用,而由局部变量起作用。对于其他不存在同名变量的函数,全局变量仍然有效。
同样,当函数局部变量与复合语句的局部变量同名时,以复合语句为准。

Python 中的全局变量和局部变量

与 C 语言的主要区别在于 global 关键字,对于 Python 中的全局变量而言,如果在函数中只使用到了它的值,而没有对其进行赋值操作的话,就不需要声明 global ,反之,如果需要对其进行赋值操作的话,那么就需要声明 global 。
如果没有声明 global ,而又在函数内对全局变量进行了赋值操作,表示是新建一个与相应的全局变量同名的局部变量,并对其进行赋值;相反,如果声明了 global 的话,就表示是对相应的全局变量进行赋值。

发布了12 篇原创文章 · 获赞 12 · 访问量 2975

猜你喜欢

转载自blog.csdn.net/qq_45805420/article/details/104105117