如果我有代码......
list = ['Clemont', 'Albert', 'Shiro']
for x in range(len(list)):
print(x)
...... x
的技术术语是什么?我假设它"迭代对象"但也许这是一种误解;如果它不是误解,什么是迭代对象?
答案 0 :(得分:10)
该上下文中x
的正式名称为target
,如Python的语言参考所示:
for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]
...将target_list
(和target
)定义为:
target_list ::= target ("," target)* [","]
target ::= identifier
| "(" target_list ")"
| "[" target_list "]"
| attributeref
| subscription
| slicing
| "*" target
如果您想知道目标可以实际接受或定义的内容,请鼓励您仔细阅读文档。根据大多数标准含义,您使用某种简单的标识符,例如变量名称(在本例中为x
)来表示目标。
答案 1 :(得分:3)
“循环变量”是您可以获得的技术。
正式名称没有官方名称,因此与分配声明的左手侧没有任何不同;相同的规则适用于“循环”变量,就像它们对分配目标一样。
在任何其他Python开发人员中调用它“循环变量”都可以得到你的观点。
对于“什么是迭代对象?”,你可能会错误地使用 iterable 或 iterator 这个术语,这就是for循环需要使其工作,这些术语的良好细分已经存在in another StackOverflow question。
答案 2 :(得分:2)
答案 3 :(得分:0)
我不确定这是否适合您对“技术术语”的定义,但在很多PEP文档中使用了表达“循环变量”,例如:对于iterators和generators,虽然基本for
循环本身似乎没有PEP。