• 变量传递


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

    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() 可以查看当前模块的符号表中的符号列表
     
     
  • 相关阅读:
    mysql基础
    协程
    锁与队列
    线程练习
    线程
    并发编程
    进程
    操作系统发展史
    第六周----例行报告
    附加题找bug
  • 原文地址:https://www.cnblogs.com/coder-2017/p/8723566.html
Copyright © 2020-2023  润新知