如果我有代码...哪些是“X”的技术术语“为X ...”
list = ['Clemont', 'Albert', 'Shiro']
for x in range(len(list)):
print(x)
...你会为x
技术术语在这里?我假设它是“迭代对象”,但也许这是一种误解;如果这不是一个误解,什么是迭代对象?
如果我有代码...哪些是“X”的技术术语“为X ...”
list = ['Clemont', 'Albert', 'Shiro']
for x in range(len(list)):
print(x)
...你会为x
技术术语在这里?我假设它是“迭代对象”,但也许这是一种误解;如果这不是一个误解,什么是迭代对象?
“循环变量”和技术一样。
自从正式名称以来没有任何正式名称,它与任务说明的左手侧没有任何区别;同样的规则适用于“循环”变量,就像他们为赋值目标所做的一样。
在任何其他Python开发人员中调用它的“循环变量”会让你明白你的观点。
至于“什么是迭代对象?”,你可能错误地认为可迭代或迭代器这是for循环所要求的,以便它能够正常工作,这些术语的良好分解已经存在in another StackOverflow question。
为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
)来表示目标。
但是'target'这个词在[任何旧作业](https://docs.python.org/3.3/reference/simple_stmts.html#assignment-statements)中都用于LHS,它并不特定于'for'循环。 –
@tobias_k:是的。这不是特定的任何事情。 *暗示*从语法的角度来看,没有特殊的名称。 – Makoto
我不同意;这只意味着两者都可以使用相同的语法。在与他人讨论时可能会使用更具体的术语,以使他们明白你在说什么。 –
我不知道这是否适合您的一个“技术术语”的定义,但表达“循环变量”在相当多的PEP文件中使用,例如对于iterators和generators,尽管基本for
循环本身似乎没有PEP。
“循环变量”也许? –