首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"for“语句中的"i”变量在函数中是否有效?

"for“语句中的"i”变量在函数中是否有效?
EN

Stack Overflow用户
提问于 2018-07-23 19:03:21
回答 2查看 88关注 0票数 1

我在python中使用这种结构:从for循环调用一个函数;函数内部使用迭代器的i值。我是否也应该传递i值?或者它是全球性的?这里的最佳实践是什么?

代码语言:javascript
复制
def function_1(A):
   (use if "i" inside here)

for i in range (etc etc):
   function_1(A)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-23 19:09:42

如果这确实是A的一个函数,那么您应该明确地将迭代器的值传递给它。函数的整体思想是使用它的参数执行一些独立的操作。函数应该对调用它的环境一无所知。它不应该知道它是从循环中调用的,也不应该知道它的调用者调用了什么变量。否则,这个函数在这个脚本之外的任何地方都是无用的,甚至在同一个脚本内如果有任何变化也是无用的。

这是一个通用的设计原则,涉及到函数、类或模块/包。对象不应该知道谁在使用它,用户应该知道它应该如何使用。

票数 3
EN

Stack Overflow用户

发布于 2018-07-23 19:07:23

如果您需要在每次循环迭代时将i的值传递给function_1,那么您的代码将如下所示:

代码语言:javascript
复制
def function_1(A):
    # use A...

for i in range(...):
  function_1(i)

function_1的定义中,A是调用函数时传递给参数的函数内给定的名称(在本例中为i)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51477283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档