Python--LEGB原则

一、 命名空间先来一段概要总结:白话一点讲:命名空间是对变量名的分组划分。不同组的相同名称的变量视为两个独立的变量,因此隶属于不同分组(即命名空间)的变量名可以重复。命名空间可以存在多个,使用命名空间,表示在该命名空间中查找当前名称。虽然命名空间是一个跟具体语言无关的概念,但是,不同的语言由于机制不同,因此在表现上还是有差别的。例如下述Python的例子:x = 10def foo(): global x x += 1 print x在这个例子中,使用函数外部
摘要由CSDN通过智能技术生成

一、 命名空间

先来一段概要总结:

白话一点讲:命名空间是对变量名的分组划分
不同组的相同名称的变量视为两个独立的变量,因此隶属于不同分组(即命名空间)的变量名可以重复。
命名空间可以存在多个,使用命名空间,表示在该命名空间中查找当前名称。

虽然命名空间是一个跟具体语言无关的概念,但是,不同的语言由于机制不同,因此在表现上还是有差别的。例如下述Python的例子:

x = 10
def foo():
    global x
    x += 1
    print x
  • 在这个例子中,使用函数外部的变量x之前需要使用globalv关键字。这在C++中是不需要的。
  • 所以,在理解Python的命名空间时,不能C++的规则来套,因为语法规则属于机制的实现。
  • C语言中,存在命名空间的概念,但是并没有提供对命名空间的支持,因此,在编写C程序的过程中,很容易发生名称碰撞(name collision),而避免这一问题,基本靠程序员自身来完成。
  • C语言中,变量名是内存地址的别名。但是由于Python一切皆对象,所以在Pytho
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值