我试图通过制作更小的函数来分解我的巨大功能,然后在主函数中调用它们。
我遇到的问题是大函数几乎完全是用于列表循环中的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()
非常感谢!
答案 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)