最近看learn python,看到使用函数属性完成nonlocal的效果。
def test(start):
def nest(label):
print(label,nest.state)
nest.state+=1
nest.state=start
return nest

个人觉得这是排版错误。应该如下:

def test(start):
def nest(label):
print(label,nest.state)
nest.state+=1
nest.state=start
return nest
不过这不是本文想记录的。其实想要记下来的就是一个点:

def test():

...content...

对于函数test()而言,test.value=...是可行的,但是test().value=...是不可行的。

a=test

b=test

a.value=1

b.value=1!

也就是该属性在本地空间是共享的,如果要实现不同调用得到不同的属性值,那么需要按照最开始的函数嵌套来进行初始化。

不过有一个问题还没测试:对函数的属性做了修改后,是否在下一次独立使用该函数的时候,该属性还在?虽然在与不在其实不影响函数使用,但是这应该设计函数的机制吧。

更多相关文章

  1. python学习笔记10(函数一): 函数使用、调用、返回值
  2. Linux下共享内存相关函数
  3. Linux回调函数的应用---已经验证
  4. c中变参函数的理解和编写(hello world引发的思考)
  5. 浅谈Oracle函数返回Table集合
  6. linux内核段属性机制(以subsys_initcall和module_init为例)
  7. Linux-C语言函数手册
  8. Linux 下nice 函数用法提高一个进程的友善值
  9. 设置查看linux 造成程序Core dumped 的函数调用层次

随机推荐

  1. Android编译系统makefile(Android.mk)说
  2. TabHost与RadioGroup结合完成的菜单
  3. 数据存储和界面笔记
  4. 【Android】Android上的Jetty
  5. Android的相对布局属性的解释
  6. Android学习之 UI效果
  7. 学习资源推荐
  8. Android之Actionbar顶部标签的使用
  9. Android工程导入jar文件步骤
  10. android contentResolver的使用