鱼C论坛

 找回密码
 立即注册
查看: 608|回复: 2

这里为啥要把括号去掉才能运行呢 求解答

[复制链接]
发表于 2018-10-30 21:07:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
origin = (0,0)
legal_x = [-100,100]
legal_y = [-100,100]
def dess(pos_x = 0,pos_y = 0):
    def moving(dire,step):
        nonlocal pos_x , pos_y
        new_x = pos_x + step * dire[0]
        new_y = pos_y + step * dire[1]
        if new_x < legal_x[0]:
            pos_x = legal_x[0] - (new_x - legal_x[0])
        if new_x > legal_x[1]:
            pos_x = legal_x[1] - (new_x - legal_x[1])
        else:
            pos_x = new_x
        if new_y < legal_y[0]:
            pos_y = legal_y[0] - (new_y - legal_y[0])
        if new_y > legal_y[1]:
            pos_y = legal_y[1] - (new_y - legal_y[1])
        else:
            pos_y = new_y
        return pos_x , pos_y
    return moving()    << --------------------------------------- # 为啥去掉括号就可以执行了?

move = dess()
print('向右移动10步后,位置是:', move([1, 0], 10))

print('向上移动130步后,位置是:', move([0, 1], 130))

print('向左移动10步后,位置是:', move([-1, 0], 10))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-30 21:45:27 | 显示全部楼层
moving 有两个参数,用括号需要给参数。dess 不用给参数只是因为你有默认值。不需要括号的情况下,你让 dess 成为 moving 的接口,调用 dess 等同于调用 moving
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-30 21:59:19 | 显示全部楼层
你怎么跟dess干上了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表