码迷,mamicode.com
首页 > 其他好文 > 详细

变量传递

时间:2018-04-05 18:36:40      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:一个   imp   code   params   div   port   int   ack   bsp   

想利用模块传递某个变量,修改某个变量的值,且在其它模块中也可见

import base
def hello():
    print ‘scope base‘, base.value, id(base.value)
from base import value
from b import hello
print ‘scope base‘, value, id(value)
value = 20
print ‘scope local‘, value, id(value)
hello()
[‘__builtins__‘, ‘__doc__‘, ‘__file__‘, ‘__name__‘, ‘__package__‘, ‘hello‘, ‘value‘]
scope base 10 140195531889072
[‘__builtins__‘, ‘__doc__‘, ‘__file__‘, ‘__name__‘, ‘__package__‘, ‘hello‘, ‘value‘]
scope local 20 140195531888832
scope base 10 140195531889072
value 的值并没有被修改,并且id值(对象的内存地址) 不一致,因此我们得出结论, value 和 base.value 存在在不同位置,是两个不同的对象。
每个模块有一个自己的符号表,当我们引入一个模块时,这个符号表中的内容就会被修改,使用dir() 可以查看当前模块的符号表中的符号列表
 
 

变量传递

标签:一个   imp   code   params   div   port   int   ack   bsp   

原文地址:https://www.cnblogs.com/coder-2017/p/8723566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!