您的位置:首页 > 编程语言 > Python开发

【python】坑都是踩出来的

2018-01-09 18:43 363 查看
1)本地变量被调用时必须提前申明
x = 12

def f1():
x = 3
print x

def f2():
x += 1  #函数内部遇到变量赋值,此处为x = x+1,x会被当做局部变量,但是f2()内部是没有定义的,因此会报错
print x

f1()  #输出3
f2()  #报错,由于x没有被声明

#修改如下
def f2():
global x
x += 1
print x

f2()  #输出13
2)函数(包括闭包)中局部变量
python中,一个函数可以随意读取全局变量,但是要修改全局变量的时候只有两种方法:1 global声明全局变量  2 全局变量是可变数据类型数据

1)python闭包函数中,我们可以随意使用外函数绑定来的临时变量,但是如果我们想修改外函数的临时变量数值会报错.
2)使用闭包时,一旦外函数被调用一次返回内函数的引用,虽然每次调用内函数,是开启一个函数执行过后消亡,但是闭包变量实际上只有一份,每次开启内函数都在使用同一份闭包变量

def counter(start_at=0):
count = start_at
def incr():
count += 1
return count
return incr

def counter(start_at=0):
count = [start_at]
def incr():
count[0] += 1
return count[0]
return incr
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python
相关文章推荐