不能将一个变量值从一个函数传递到另一个函数

2024-09-25 08:29:59 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的代码中,在声明了全局变量prime之后,它应该从第一个变量中获取值并添加到第二个变量中,在执行之后,我应该得到一个类似于[1,2,3,7]的数组。但是当我打印第二个函数时,我只得到了[3,7]。知道我错在哪里吗?这是我的密码:

import numpy as np 

prime = []  
nprime = []


def first():
    global prime
    global nprime
    prime = np.append(1, 2)
    nprime = np.append(6, 4)
    return (prime, nprime)


def second():
    global prime
    prime = np.append(3, 7)
    return prime


A = second()
print A

Tags: 函数代码import声明密码returndefnp
1条回答
网友
1楼 · 发布于 2024-09-25 08:29:59

假设您确实在程序中调用了first(),那么问题发生的原因是-

np.append(3,7)

您正在创建一个新列表[3,7],并将其分配给prime变量。这不会附加到现有的素数。你知道吗

我甚至不知道为什么要使用np.append(),如果要将单个值附加到简单列表,请使用list.append(),如果要将多个值附加到简单列表,请使用list.extend()。示例-

prime = []  
nprime = []


def first():
    global prime
    global nprime
    prime.extend([1, 2])
    nprime.extend([6, 4])
    return (prime, nprime)


def second():
    global prime
    prime.extend([3, 7])
    return prime

first()
A = second()
print A

也就是说,不建议使用全局变量,一种更简单的方法是从第一个函数返回值,并将其作为参数传递给第二个函数,例如-

prime = []  
nprime = []


def first(prime, nprime):
    prime.extend([1, 2])
    nprime.extend([6, 4])
    return (prime, nprime)


def second(prime):
    prime.extend([3, 7])
    return prime

prime, nprime = first(prime)
prime = second(prime)
print prime

这是一个非常简单的例子,不知道你想用这个做什么。你知道吗

相关问题 更多 >