[fp] Python函数竟然不支持词法作用域

cookoo 2007-06-13
python的局部作用域是有点违反直觉
huangyiiiiii 2007-06-18
默认情况下,取名字会自动伸展到外部作用域,绑定名字却只在局部作用域中,以免不知不觉中污染了外部名字空间。
如果你知道自己在做什么也可以使用 global、nonlocal(python3000) 明确指定。
规则并不复杂,符不符合直觉取决与你的习惯了。
sleets 2008-06-23
应该加个outer
meizhini 2008-06-29

   我来说几句话:在我的理解,def嵌套def的方法,在正常的使用,我是不推荐的.
   1.不利于测试.
   2.代码不能够重用.
   3.不是正常的思维.
   一般时候没有任何好处.既然它存在,就有它存在的道理.
   在使用回掉函数编程的方式的时候,会有它的好处.这个这种函数嵌套的特定解决的.
   在嵌套的函数可以看到上一层的变量,如果在回调函数中,并且是异步的,这样的就会有点用处.
   def js( curl ):  
        url = curl       #url地址
        def seccede_callbk():
            add_2_db( url )  #把url增加到数据库中.
            mv_sm_db( url )  #删除数据库中另一张表里面相应的记录
        def false_callbk():
            mv_sm_db( aa )   #如果没有找我要的东西,也要删除数据库的记录.
        display( url,seccede_callbk,false_callbk )
        #在这里把in_level当成参数调用一个一个函数,就种方法就它的好处了.
上面是我工作中一个实际应用模型.这个要每秒调用一次js().跑起来就是2~3个月都不会停止.display()函数这里就不给出了,里面用数组维持每次调用,在这个函数中到连接到url上去扒数据,找到了特定的数据就调用seccede_callbk,失败就调用false_callbk

meizhini 2008-06-29
工作中的编程,不要有太多的特性.
除非你在研究python,就把它的所有特性用上吧.
我认为,编程,够用,解决了实际问题,才是最实际的.不要奢求,你的程序大而全的应用上了你的编程语言中所有的特性.
Global site tag (gtag.js) - Google Analytics