欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

模块变量 在内部的使用

shiping1 的头像

 

。。。。不用global就是本地变量
就这么简单
 你的意思是 使用 变量的时候 是一层层往上找 
但是给变量赋值的时候 就是 给上 global
否则的话 就是给自己(局部变量) 赋值
 
python的变量搜索方式是一层一层往上搜索的
函数内部没有,就往上一层找


变量的声明和搜索是不一样的
在哪儿声明的,那它就属于那一层命名空间
但是搜索变量的是一层一层往上找的

变量在 操作符的左边和右边是不一样的

至于global就是为了处理变量在操作符左边的情况,声明为全局的变量,而不是当前这一层命名空间。这也就是create_engine函数里用到global的原因。
话说你给的链接代码感觉写的很烂啊,不如去慢慢看sqlalchemy的代码吧


aa = "AAAA"
class _LasyConnection(object):
     cc = "CCCC"
     def __init__(self):
         print self.cc
         print aa #能够打印出 aa 的值 "AAAA" 由此可见 在
 #对象的内部可以直接打印出模块变量

         print "BBBB"
def onefunction():
     global aa
      print aa   #在函数内部要打印出模块变量 必须全局引用

_db_ctx = _LasyConnection()
      

普通分类: