酷学 发表于 2017-5-31 21:43:34

Trinity_lee 发表于 2016-5-13 21:15
python2.7如何使用nonlocal呀

nonlocal是3.0版本之后新增的,python2.7没有

luyun 发表于 2017-6-8 19:29:51

甲鱼哥{:5_97:}厉害了~看懂了;灰常感谢

2素儿 发表于 2017-6-21 09:36:35

天哪,学到现在就发现自己只是看懂,明白别人在干什么。理想和现实还是有差距。不管怎样也要把python啃下来。我只学一门还不行啊.......

vee 发表于 2017-6-30 10:35:32

想想以后能做个小游戏就好高兴














kikouousya 发表于 2017-7-9 19:03:27

原来如此,不懂。

呜哈哈哈 发表于 2017-7-10 20:33:46

好难啊,对我这种初学者来说

Zhun 发表于 2017-7-14 16:11:05

对照答案学习

gin2010 发表于 2017-7-30 19:06:51

程序倒是看懂了,就是不明白为什么要用闭包的写法,相比用普通函数有什么优势?

2131479626 发表于 2017-8-6 02:42:43

1603527940 发表于 2017-8-7 10:49:39

感觉这个代码可以改进一下

木一 发表于 2017-8-9 10:32:50

懵逼{:10_243:}

拂晓车站 发表于 2017-8-11 10:00:14

慢慢学习吧
学到14课了

银色的色 发表于 2017-8-17 22:26:40

喵喵喵~o( =∩ω∩= )m

lainy 发表于 2017-8-21 16:36:05

恩,闭包果然是个厉害的东西啊,还不是太会用。

生哥 发表于 2017-8-30 16:35:04

假装我看懂了!!!

harve 发表于 2017-9-1 23:25:24

origin=(0,0)
legal_x=[-100,100]#水平范围
legal_y=[-100,100]#垂直范围

def create(pos_x=origin,pos_y=origin):
    def moving(direction,step):
      nonlocal pos_x,pos_y
      new_x=pos_x+direction*step
      new_y=pos_y+direction*step
      if new_x<legal_x:
            pos_x=legal_x-(new_x-legal_x)
      elif new_x>legal_x:
            pos_x=legal_x-(new_x-legal_x)
      else:
            pos_x=new_x
      if new_y<legal_y:
            pos_y=legal_y-(new_y-legal_y)
      elif new_y>legal_y:
            pos_y=legal_y-(new_y-legal_y)
      else:
            pos_y=new_y
      return(pos_x,pos_y)
    return moving

a=create()
print('向上一步,向左三步:',a(,))

小甲鱼的只能走正方形,或者直线,可以稍微将step改为list 可以设置两个方向的步进

HDenis 发表于 2017-9-3 19:26:14

不觉明历

药成碧海难奔 发表于 2017-9-16 20:05:37

没人玩过这个大话战国吗?

lovejianglz 发表于 2017-9-17 17:32:55

理解为坐标存在move里 不动move 坐标就一直记着

蓝色披风 发表于 2017-9-25 15:55:46

我竟然成功的看懂了
页: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19
查看完整版本: 游戏中的角色移动:闭包(closure)在实际开发中的作用