python中修改函数内部的变量会发生什么

最近写python遇到个函数内部变量使用外部变量的问题,现在总结下吧

#!/usr/bin/env python

a = 100
def su():
  a = a + 1
  print(a)

s = su()

#执行这段代码会报错(如果只是调用不修改是不会报错的)

更改为:

#!/usr/bin/env python

a = 100
def su():
  global a
  a = a + 1
  print(a)

s = su()

总结:

在python的函数中和全局同名的变量,如果修改变量的值就会变成局部变量,

在修改之前对该变量的引用自然就会出现没定义这样的错误了,

如果确定要引用全局变量,并且要对它修改,必须加上global关键字。

时间: 2024-10-16 10:20:45

python中修改函数内部的变量会发生什么的相关文章

Python中的函数与变量

本节内容 函数的定义方法 函数功能 函数的返回值 函数的形参与实参 全局变量与局部变量 递归 函数的作用域 匿名函数lambda 函数式编程 常用内置函数 其他内置函数 函数 函数的定义方法 函数就相当于一个文件,这个文件有他特定的功能可以减少代码的重写 1 def 函数名 (参数): 2 "函数的注释" 3 函数体 4 return x 若命名了相同的函数名,则调用函数时下面的函数会覆盖掉上面的函数 函数的功能 1.代码重用 2.保持一致性,易维护 3.可扩展性 函数的返回值 1.返

C++中常函数内部的this指针也是const类型的

代码中碰到一个奇怪的现象,在同样的函数中调用this指针,结果却有一个无法通过编译 1 // 读取连接信息 2 void ThirdWizardPage::ReadConnection() 3 { 4 QFile file("oracle.passwd"); 5 if(!file.open(QIODevice::ReadOnly)) 6 { 7 QMessageBox::information(this, tr("打开文件失败"), 8 tr("错误原因:

Python中的函数详解

声明:转载自伯乐在线 Python中的函数,无论是命名函数,还是匿名函数,都是语句和表达式的集合.在Python中,函数是第一个类对象,这意味着函数的用法并没有限制.Python函数的使用方式就像Python中其他值一样,例如字符串和数字等.Python函数拥有一些属性,通过使用Python内置函数dir就能查看这些属性,如下代码所示: def square(x): return x**2 >>> square <function square at 0x031AA230>

【和我一起学python吧】python 中的函数

一.函数的定义: Python中使用def关键字定义函数,函数包括函数名称和参数,不需要定义返回类型,Python能返回任何类型: Python代码   #没有返回值的函数,其实返回的是None def run(name): print name,'runing' #函数体语句从下一行开始,并且第一行必须是缩进的 >>>run('xiaoming') xiaoming runing >>>print run('xiaoming') xiaoming runing Non

python 中main函数总结

Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数. 每个文件(模块)都可以任意写一些没有缩进的代码,并且在载入时自动执行,为了区分主执行文件还是被调用的文件,Python引入了一个变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name__为'__main__'.这个特性,为测试驱动开发提供了极好的支持,我们可以在每个模块中写上测试代码,这些测试代码仅当

浅析python中的类变量和对象变量

刚学python,学到了有关于类和对象的地方.对一个概念有点模糊,后来通过实践编码找到一定规律 在python中 class test(object): id=2 name='tt' list=['tt','dd'] def change(self,newA,new_id): self.id=new_id self.age=newA return self.age t1 = test() t1.change(21, 3) print t1.id #3 t2 = test() t2.age = 2

Python中split()函数的用法及实际使用示例

Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(str))[n] 拆分字符串.通过制定分隔符将字符串进行切片,并返回分割后的字符串列表[list] 参数:str:分隔符,默认为空格,但不能为空("") num: 表示分割次数.如果指定num,则分割成n+1个子字符串,并可将每个字符串赋给新的变量 [n]: 选取第n个分片,即第n个字符串,从

使用shell调用python中的函数

最近遇到一个需求,需要通过shell调用python中的一个函数,发现其实也挺简单的: python脚本如下: test.py: import ConfigParser config = ConfigParser.ConfigParser() config.read("test.conf") def get_foo(): return config.get("locations", "foo") def get_bar(): return con

python 中 print 函数用法总结

Python 思想: “一切都是对象!” 在 Python 3 中接触的第一个很大的差异就是缩进是作为语法的一部分,这和C++等其他语言确实很不一样,所以要小心 ,其中python3和python2中print的用法有很多不同,python3中需要使用括号 缩进要使用4个空格(这不是必须的,但你最好这么做),缩进表示一个代码块的开始,非缩进表示一个代码的结束.没有明确的大括号.中括号.或者关键字.这意味着空白很重要,而且必须要是一致的.第一个没有缩进的行标记了代码块,意思是指函数,if 语句.