十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
局部变量是不可以再函数外访问的。
专注于为中小企业提供成都网站设计、成都网站制作、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业十堰郧阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
如果坚持访问,有两个办法:
1)把a修改成全局变量;
2)把function2定义在function1的内部。
首先你要明白,Python的函数传递方式是赋值,而赋值是通过建立抄变量与对象的关联实现的。
对于你的代码:
执行 d = 2时,你在__main__里创建了d,并让它指向2这个整型对象。
执行函数add(d)过程中:
d被传递给add()函数后,在函数内部,袭num也指向了__main__中的百2
但执行num = num + 10之后,新建了对象12,并让num指向了这个新对象——12。
如果你明白函数中的局部变量与__main__中变量的区别,那么很显然,在__main__中,d仍在指着2这个对象,它没有改变。因此,你打印d时得到了2。
如果你想让输出为12,最简洁的办法是:度
在函数add()里增加return num
调用函数时使用d = add(d)
代码如下:
def add(num):
num += 10
return num
d = 2
d = add(d)
print d
使用返回值的方法有两种:
可以直接把调用的函数作为变量使用
可以用调用函数给一个变量赋值
第一种情况见如下例子:
l = [1,2,3,4,5]
def add_element(list, element):
list.append(element)
return list
print add_element(l, 6)
# [1,2,3,4,5,6]
print add_element(l, 6)[5]
# 6
第二种情况:
l1 = add_element(l, 6)
print l1
# [1,2,3,4,5,6]
print l1[5]
# 6
注意: 以上例子都是应用于python 2.x