Skip to main content
 首页 » 编程设计

python之在函数 Python 之间传递列表

2025年05月04日12jackei

如果我在一个函数中创建一个列表并对其进行编辑,那么我希望能够将完成的列表传递给另一个函数,在那里它将被用来做更多的事情。

def func1(): 
    numbers = [1, 2, 3, 4] 
    if numbers.count(1) > 0: 
        numbers.remove(1) 
        func2() 
 
def func2(): 
    two = numbers[0] 
 
func1() 

我怎样才能得到它,以便它不会提取未全局定义的错误编号。我知道它为什么会报错,但经过​​研究,我仍然找不到解决这个问题的好方法。

请您参考如下方法:

根据您的里程和要求,选择一个

  1. 将列表作为参数传递给被调用的函数

    def func2(numbers): 
        two = numbers[0] 
     
     
    def func1(): 
        numbers = [1, 2, 3, 4] 
        if numbers.count(1) > 0: 
            numbers.remove(1) 
            func2(numbers) 
    
  2. 使这两个函数成为单个类的一部分,并使列表成为实例属性

    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() 
    
  3. 重新设计,使被调用函数用调用者修饰

    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]) 
    
  4. 闭包嵌套函数

    def func1(): 
        def func2(): 
            two = numbers[0] 
        numbers = [1, 2, 3, 4] 
        if numbers.count(1) > 0: 
            numbers.remove(1) 
            func2() 
     
     
    func1()