我在python中使用这种结构:从for循环调用一个函数;函数内部使用迭代器的i值。我是否也应该传递i值?或者它是全球性的?这里的最佳实践是什么?
def function_1(A):
(use if "i" inside here)
for i in range (etc etc):
function_1(A)发布于 2018-07-23 19:09:42
如果这确实是A的一个函数,那么您应该明确地将迭代器的值传递给它。函数的整体思想是使用它的参数执行一些独立的操作。函数应该对调用它的环境一无所知。它不应该知道它是从循环中调用的,也不应该知道它的调用者调用了什么变量。否则,这个函数在这个脚本之外的任何地方都是无用的,甚至在同一个脚本内如果有任何变化也是无用的。
这是一个通用的设计原则,涉及到函数、类或模块/包。对象不应该知道谁在使用它,用户应该知道它应该如何使用。
发布于 2018-07-23 19:07:23
如果您需要在每次循环迭代时将i的值传递给function_1,那么您的代码将如下所示:
def function_1(A):
# use A...
for i in range(...):
function_1(i)在function_1的定义中,A是调用函数时传递给参数的函数内给定的名称(在本例中为i)。
https://stackoverflow.com/questions/51477283
复制相似问题