从品牌网站建设到网络营销策划,从策略到执行的一站式服务
局部变量是不可以再函数外访问的。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比承留网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式承留网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖承留地区。费用合理售后完善,10年实体公司更值得信赖。
如果坚持访问,有两个办法:
1)把a修改成全局变量;
2)把function2定义在function1的内部。
这涉及到变量的生命周期问题,一般的,在函数里面声明的变量在函数外是不起作用的。
一个比较简单的解决办法是你在函数外就先声明这个变量,声明成全局变量。然后在函数里面进行操作和赋值。
最后就能在函数外获取变量的值了。例如:
123456 x = 0def a(): x = 2if __name__ == '__main__': a() print x
最终x打印出来的结果就是2
import inspect
from demo import demo
#传入函数,改变函数内部变量a,从a=1改变成a=2
def cfunc(func):
#当前位置的全部局部变量
lc=locals()
#获得函数的内容
func_code=inspect.getsource(func)
#使用replace改变函数内部的变量
func_code=func_code.replace('a=1','a=2')
#动态创建函数
exec(func_code)
#获得函数并返回
res_func=lc[func.__name__]
return res_func
demo=cfunc(demo)
demo()
你写的只是引用,也可以说读取是可以的,但不能修改。
比如这样写,外面的i 仍然=0
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图