我是编程新手,现在正在Zed Shaw的Python书中练习。 在Zed的Ex41中,有这个功能:
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()
因为这个功能似乎也有效。感谢
答案 0 :(得分:18)
第二个例子有效,是的,但他正在尝试编写一本Python教程样式书,我认为第一个例子更准确地说明了究竟发生了什么。 start
作为变量名称,如果它不再是实际的start
,而是我们要进入的next
会议室,则会失去意义。
答案 1 :(得分:11)
我认为这是为了提高可读性。在程序员的心目中,start
应该代表某事的开始。据推测,next
应该代表下一个项目。
你是正确的,可以缩短代码,但它会破坏start
的含义。
请注意,在当前版本的Python(2.6或更高版本)中,next
是一个内置函数,因此命名变量next
不再是一个好主意。
答案 2 :(得分:2)
我想这只是为了可读性。在编写代码时,您应该始终牢记变量(以及函数,类等)应始终具有有意义的名称,否则读取代码将是一场噩梦。循环中变量的含义是保留 next 项,而不是 start 项。
答案 3 :(得分:0)
他没有拥有,但却是出于命名式考虑。