首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zed Shaw's Learn the Hard way教程

Zed Shaw's Learn the Hard way教程
EN

Stack Overflow用户
提问于 2011-01-06 05:26:20
回答 4查看 4.1K关注 0票数 4

我是编程新手,目前正在学习Zed Shaw的Python书中的练习。在Zed的Ex41中,有这样一个函数:

代码语言:javascript
复制
def runner(map, start):
     next = start

     while True:
         room = map[next]
         print "\n-------"
         next = room()

我的问题是,为什么他必须将'start‘赋值给变量'next’,而他本可以直接使用'start‘?他为什么不直接这么做呢?

代码语言:javascript
复制
def runner(map, start):


     while True:
         room = map[start]
         print "\n-------"
         start = room()

因为这个函数似乎也起作用了。谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-06 05:29:01

第二个例子是可行的,但是他正在尝试写一本Python教程风格的书,我认为第一个例子更清楚到底是怎么回事。当start不再是实际的start,而是我们将要进入的next房间时,作为变量名的它就失去了意义。

票数 18
EN

Stack Overflow用户

发布于 2011-01-06 05:31:57

我认为这样做是为了可读性。在程序员的心目中,start应该代表某种事物的开始。据推测,next应该代表下一个项目。

您说的对,代码可以缩短,但它破坏了start的含义。

请注意,在当前版本的Python2.6或更高版本中,next是一个内置函数,因此将变量命名为next不再是一个好主意。

票数 10
EN

Stack Overflow用户

发布于 2011-01-06 05:31:17

我猜它只是为了可读性。在编写代码时,您应该始终记住变量(以及函数、类等)应该始终具有有意义的名称,否则读取代码将是一场噩梦。循环中变量的含义是保存next项,而不是start项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4609373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档