Zed Shaw的《死学Python》教程
我刚开始学习编程,现在正在做Zed Shaw的Python书里的练习。在Zed的第41章里,有一个函数:
def runner(map, start):
next = start
while True:
room = map[next]
print "\n-------"
next = room()
我想问的是,为什么他要把'start'赋值给变量'next',而不是直接用'start'呢?他为什么不直接这样做呢?
def runner(map, start):
while True:
room = map[start]
print "\n-------"
start = room()
因为这个函数似乎也能正常工作。谢谢!
4 个回答
2
我想这主要是为了让代码更容易读懂。当你写代码的时候,要时刻记得给变量(还有函数、类等等)起个有意义的名字,不然看你的代码就像做噩梦一样。循环中的变量是用来保存下一个项目的,而不是起始项目。
10
我觉得这样做是为了让代码更容易读懂。在程序员的脑海里,start
应该表示某个事情的开始,而next
则是表示下一个项目。
你说得对,代码可以简化,但这样会让start
的意思变得模糊。
需要注意的是,在现在的Python版本(2.6及以后)中,next
已经是一个内置函数,所以不再适合用next
来命名变量了。
18
第二个例子确实能用,但他想写一本关于Python的教程书,我觉得第一个例子更清楚地说明了发生了什么。start
这个变量名在不再表示实际的start
时就失去了意义,而是变成了我们要进入的下一个房间next
。