python局部赋值的规则

yipeiwu_com5年前Python基础

复制代码 代码如下:

  myVar = 1

def myfunc():
    myVar += 1

myfunc()
  


   会提示错误:

UnboundlocalError: local variable 'myVar' referenced before assignment

Python提出如下假设:如果在函数体内的任何地方对变量赋值,则Python将名称添加到局部命名空间中。

语句myVar += 1对名称myVar赋值,则myVar是函数myfunc的局部命名空间的一部分,而它当前没有关联值,所以会产生错误。

解决方法:使用global语句

复制代码 代码如下:

myVar = 1

def myfunc():
    global myVar
    myVar += 1

myfunc()

附作用域搜索规则:

L:本地的(Local)

E:封闭的(Eclosing)

G:全局的(Global)

B:内置的(Built-in) 

相关文章

django2 快速安装指南分享

1. 安装 作为一个 Python Web 框架,Django需要Python的支持。请参阅 我可以在Django中使用哪些Python版本?了解详情。Python包含一个名为SQLit...

Python实现统计英文单词个数及字符串分割代码

Python实现统计英文单词个数及字符串分割代码

字符串分割 复制代码 代码如下: str="a|and|hello|||ab" alist = str.split('|') print alist 结果 复制代码 代码如下: st...

Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析

Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析

本文实例讲述了Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法。分享给大家供大家参考,具体如下: 函数的返回值: 函数一旦执行到&...

基于python实现KNN分类算法

kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者...

python字符串的拼接方法总结

python字符串的拼接方法总结

这篇文章主要介绍了python字符串的拼接方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 加号连接 1.通过+号连接起来 逗...