Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > 其他编程语言 > Python语法测试:各种全局变量类型的局部作用域访问方式
【标  题】:Python语法测试:各种全局变量类型的局部作用域访问方式
【关键字】:Python
【来  源】:http://www.cublog.cn/u/28253/showart.php?id=215389

Python语法测试:各种全局变量类型的局部作用域访问方式

Your Ad Here

今天发现byteOfPython中关于作用域的描述"没有global语句,是不可能为定义在函数外的变量赋值的。"这句只适合标量。因为全局定义的复合变量总是能够在不使用global的情况下在局部作用域访问。为此专门用一个例子来测试各种情况:


# encoding:utf-8

# 局部作用域改变标量,列表或字典(访问元组)

x=50
y=50
aPrg=['ml1bw','cnc','enw']
aPrgCopy=aPrg[:]
tLang=('eng','zh-cn')
d={'m':12,'o':34}

def changeGlobal():
# 标量 无global访问
x=51 # 声明一个新的局部变量,这是这个例子中惟一没有影响对应全局变量的情况
# 如果写成x+=1将引发UnboundLocalError

# 标量 global访问
global y # 先声明操作对象是全局变量
y+=1 # 再改变其值

# 列表 global访问
global aPrgCopy # 或者先像标量一样先声明全局也行
print aPrgCopy
aPrgCopy.extend(['mak','fhj'])

# 列表 无global访问
aPrg.extend(['gwt','hjd']) # 直接对全局列表变量操作就可以!
print '---local:\n',aPrg[0]

# 元组 无global访问
print tLang[0] # 像列表一样直接访问元组元素

# 字典 无global访问
d['m']=32 # 字典也不用声明为全局变量就可以随意操作了!
del d['o']
d['n']=96
print d

print '\n'.join([str(c) for c in ['---global:',x,y,aPrg,aPrgCopy,d]])
changeGlobal()
print '\n'.join([str(c) for c in ['---global:',x,y,aPrg,aPrgCopy,d]])
Python语法:复合类型数据表示中逗号的困惑:【上一篇】
Python里的编码和注释:【下一篇】
【相关文章】
  • Python语法:复合类型数据表示中逗号的困惑
  • Python实用:语音朗读
  • Python与C++特性对比
  • Python Cryptography Toolkit 扩展包安装
  • Python代码
  • 用Python实现Web自动测试
  • IronPython for ASP.NET 的原理分析(一):如何在 CLR 类型上实现动态性
  • 一切从游戏开始-完整的一个python to hack 实例
  • 尝试了一下wxPython
  • IronPython 中的属性注入器机制
  • 【随机文章】
  • vxworks测试题及解答
  • oracle 优化方法
  • 《设计模式》学习笔记--代理Proxy
  • 个人的学习曲线模型(UML)
  • 异位性皮炎治疗异位性皮炎图片异位性皮肤炎相信你的选择美国康本没错
  • java培训笔记五
  • 海南风光; 5/1没有出去玩的朋友,进来看看吧............
  • jsp源码实例3(获取jsp各种参数)
  • 用GD库生成高质量的缩略图片
  • 在Windows 2000中如何关闭ICMP(Ping)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.