Zed Shaw的学习Python艰难的教程

kas*_*old 4 python

我是编程新手,目前正在Zed Shaw的Python书中练习.在Zed的Ex41中,有这个功能:

def runner(map, start):
     next = start

     while True:
         room = map[next]
         print "\n-------"
         next = room()
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么当他可以直接使用'start'时,他必须为变量'next'分配'start'?他为什么不这样做呢?

def runner(map, start):


     while True:
         room = map[start]
         print "\n-------"
         start = room()
Run Code Online (Sandbox Code Playgroud)

因为这个功能似乎也有效.谢谢

Ale*_*dal 18

第二个例子有效,是的,但是他正在尝试编写一本Python教程样式书,我认为第一个例子更准确地说明了究竟发生了什么.start作为一个变量名称,当它不再是实际的时候会失去意义start,而是next我们要进入的房间.


unu*_*tbu 10

我认为这是为了可读性.在程序员的心目中,start应该代表某事的开始.next大概应该代表下一个项目.

你是正确的,可以缩短代码,但它会破坏代码的含义start.

请注意,在当前版本的Python(2.6或更高版本)中,next是一个内置函数,因此命名变量不再是一个好主意next.