我是编程新手,目前正在学习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()因为这个函数似乎也起作用了。谢谢
发布于 2011-01-06 05:29:01
第二个例子是可行的,但是他正在尝试写一本Python教程风格的书,我认为第一个例子更清楚到底是怎么回事。当start不再是实际的start,而是我们将要进入的next房间时,作为变量名的它就失去了意义。
发布于 2011-01-06 05:31:57
我认为这样做是为了可读性。在程序员的心目中,start应该代表某种事物的开始。据推测,next应该代表下一个项目。
您说的对,代码可以缩短,但它破坏了start的含义。
请注意,在当前版本的Python2.6或更高版本中,next是一个内置函数,因此将变量命名为next不再是一个好主意。
发布于 2011-01-06 05:31:17
我猜它只是为了可读性。在编写代码时,您应该始终记住变量(以及函数、类等)应该始终具有有意义的名称,否则读取代码将是一场噩梦。循环中变量的含义是保存next项,而不是start项。
https://stackoverflow.com/questions/4609373
复制相似问题