我是编程新手,目前正在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.