如果我在一个函数中创建一个列表并对其进行编辑,那么我希望能够将完成的列表传递给另一个函数,在那里它将被用来做更多的事情。
def func1():
numbers = [1, 2, 3, 4]
if numbers.count(1) > 0:
numbers.remove(1)
func2()
def func2():
two = numbers[0]
func1()
我怎样才能得到它,以便它不会提取未全局定义的错误编号。我知道它为什么会报错,但经过研究,我仍然找不到解决这个问题的好方法。
请您参考如下方法:
根据您的里程和要求,选择一个
将列表作为参数传递给被调用的函数
def func2(numbers): two = numbers[0] def func1(): numbers = [1, 2, 3, 4] if numbers.count(1) > 0: numbers.remove(1) func2(numbers)使这两个函数成为单个类的一部分,并使列表成为实例属性
class Foo(object): def __init__(self, numbers): self.numbers = numbers pass def func1(self): if self.numbers.count(1) > 0: self.numbers.remove(1) self.func2() def func2(self): two = self.numbers[0] Foo([1, 2, 3, 4]).func1()重新设计,使被调用函数用调用者修饰
def func1(func): def wraps(*argv): numbers = argv[0] if numbers.count(1) > 0: numbers.remove(1) func(*argv) return wraps @func1 def func2(numbers): two = numbers[0] func2([1,2,3,4])闭包嵌套函数
def func1(): def func2(): two = numbers[0] numbers = [1, 2, 3, 4] if numbers.count(1) > 0: numbers.remove(1) func2() func1()
