在Python中引用for循环项外部for循环

时间:2015-11-30 21:52:50

标签: python for-loop

我试图通过制作更小的函数来分解我的巨大功能,然后在主函数中调用它们。

我遇到的问题是大函数几乎完全是用于列表循环中的x,我需要在整个函数中引用x。

如果我拆分代码,并调用包含x的函数,则无法识别x。反正有没有避免这个?

我知道变量可以使它变为全局变量,但这不是变量。

编辑: 谢谢快速回复的家伙们!这是我的意思的一个例子:

def func():
  for item in L:
    if varA == 1:
      var1 = "Hello"
    if varB == 1:
      var2 = "World"

我想要的是:

def minifunc1():
  var1 = "Hello"
def minifunc2():
  var1 = "World"

def func():
  for item in L:
    if varA == 1:
      minifunc1()
    if varB == 1:
      minifunc2()

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以在Python中创建一个类对象,并具有多个访问/修改特定属性的方法:

class PROJECT(object):

    def __init__(self, alist):
        """
        Instantiate a class object with a single list of numbers
        """ 

        self.alist = alist
        self.result = None

    def multiply(self, value):
        """
        Multiply each element of the list by the value and store it in result
        """

        self.result = [x * value for x in self.alist]

        return 

    def add(self, value):
        """
        Add to each element of the list the passed value and return the list
        """

        return [x + value for x in self.alist]

if __name__ == "__main__":
    l = [1, 2, 3, 4]
    test = PROJECT(l)
    test.multiply(5)
    test.add(10)