zoukankan      html  css  js  c++  java
  • 变量传递

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

    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() 可以查看当前模块的符号表中的符号列表
     
     
  • 相关阅读:
    hdu 1047 Integer Inquiry
    大数模板(高精度)
    git 学习
    java List 排序
    简单排序总结
    JDK1.8
    webservice 学习笔记 1
    inline-block,inline,block,table-cell,float
    mybatis 学习视频总结记录
    left join right inner join 区别
  • 原文地址:https://www.cnblogs.com/coder-2017/p/8723566.html
Copyright © 2011-2022 走看看