Python 3.2官方文档翻译:作用域和命名空间实例

下面的实例主要用来示范如何引用不同的作用域和命名空间,关键字global和nonlocalru如何影响变量绑定。

文档翻译:作用域和命名空间实例-python基础教程">

实例运行结果是:

After local assignment: test spam

After nonlocal assignment: nonlocal spam

After global assignment: nonlocal spam

In global scope: global spam

注意局部赋值(这是默认的)不能改变scope_test方法中的spam的绑定值。但是nonlocal赋值可以改变它的值。全局变量赋值只能改变与模块同一级的值。

你可以看到在全局变量赋值前没有给spam绑定值。

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

时间: 2025-01-20 19:35:19

Python 3.2官方文档翻译:作用域和命名空间实例的相关文章

Python 3.2官方文档翻译:作用域和命名空间

在介绍类之前,首先我想告诉你一些关于python作用域的规则.类的定义非常巧妙地运用了命名空间,你需要知道范围和命名空间的工作原理以能全面了解接下来发生的. 顺便说一下,关于这节讲到的知识对于任何优秀的python程序员非常有用. 让我们开始以一些定义开始. 命名空间(namespace)是一个从名称到对象的映射.大多命名空间目前用Python字典实现的,但那通常不会被注意(除非为了性能),在将来它可以改变.命名空间的例子是:内置名称的set(包含函数如abs()和内置异常名称):在模块中的全局

Python 3.2 官方文档翻译:错误与异常

第六章 错误和异常 直到现在错误信息还没有被涉及到.但你如果已经尝试了实例你可能已经看到一些相关信息.在python中至少有两种不同的错误:syntax errors 和exceptions 6.1 语法错误(syntax errors)   语法错误,也就是编译错误,当你开始学习python时,这种错误可能是你最常见的抱怨. >>> while True print('Hello world') File "<stdin>", line 1, in ?

Python 3.2官方文档翻译之文件读写

5.2文件读写 Open()方法返回一个文件对象,在大多数情况下传递两个对象: open(filename, mode): 例如: >>> f = open('/tmp/workfile', 'w') 第一个参数是包含文件名称的字符串,第二个参数是包含描述文件使用方式的字符串.如果文件只读标记为"r",只写标记为"w"(相同名字的已经存在文件将会被清除),, "a"表示添加到文件结尾,数据就会自动的添加到文件的结尾."

Python 3.2官方文档翻译:异常处理

8.3 异常处理 编写可以处理可选择的异常是可能的. 看看下面的例子,要求用户输入一个合法的整数类型,但是允许用户打断程序()用control-c或者其他操作系统支持的语言:注意一个用户产生的终端会引发一个keyboardInterrupt 异常. >>> while True: ... try: ... x = int(input("Please enter a number: ")) ... break ... except ValueError: ... pri

Python基本语法_变量作用域LEGB

目录 目录 软件系统 变量的作用域 高级语言对数据类型的使用过程 作用域的产生 作用域的类型 Llocal局部作用域 Eenclosing嵌套作用域 Gglobal全局作用域 Bbuilt-in内置作用域 变量名解析LEGB法则 实例说明 对变量的引用 对变量的修改 global关键字 nonlocal关键字 命名空间和作用域的区别 软件系统 系统 Ubuntu 14.04 软件 Python 2.7.3 IPython 4.0.0 变量的作用域 在Python程序中创建.改变.查找变量名时,都

《Spring Data 官方文档翻译》preface到2.requirements

Table of contents for 10 <Spring Data 官方文档翻译>preface到2.requirements 原文链接 前言 Spring Data Cassandra项目将核心Spring概念应用于使用Cassandra Columnar数据存储的开发解决方案. 我们提供了一个"模板"作为高级抽象用于存储和查询文档. 你会注意到其与Spring框架中的JDBC支持的相似之处. 1. 项目元数据 版本控制 – https://github.com/

优化Python代码使其加快作用域内的查找_python

我将示范微优化(micro optimization)如何提升python代码5%的执行速度.5%!同时也会触怒任何维护你代码的人. 但实际上,这篇文章只是解释一下你偶尔会在标准库或者其他人的代码中碰到的代码.我们先看一个标准库的例子,collections.OrderedDict类:   def __setitem__(self, key, value, dict_setitem=dict.__setitem__): if key not in self: root = self.__root

Log4j官方文档翻译(一、基本介绍)

log4j是使用java语言编写的可靠的.快速的.灵活的日志框架,它是基于Apache的license. log4j支持c,c++,c#,perl,python,ruby等语言.在运行时通过额外的配置文件配置,提供不同的日志级别以及多种日志输出种类,比如数据库,文件,控制台,syslog等等. log4j有三个主要部分: loggers 负责捕获日志信息 appenders 负责输出信息到不同的目的地 layouts 负责使用不同的样式输出日志 log4j的特性: 线程安全 优化速度 基于命名的

Python中的变量和作用域详解_python

作用域介绍 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的: G:globa,全局变量,就是模块级别定义的变量: B:built-in,系统固定模块里面的变量,比如int, bytearray等. 搜索变量的优先级顺序依次是:作用域局部>外层作用域>当前模块中的全局>python内置作用域,也就是LEGB. x = int(2.9) # int bu