如何将列表变量传递回函数外部(Python)

时间:2018-08-26 06:16:51

标签: python list function return

我认为使用return函数会使放置在它后面的变量传递到我的函数之外(返回?)。好像没有,为什么不呢?

我正在尝试编写一些代码,要求我编译一个函数内5个项目的列表,然后将该列表传递给函数外并对其进行一些处理。现在,我只在其外部编写了一条打印语句,只是试图查看它是否在我的函数之外传递,但是以后需要做更多的事情。它告诉我变量未定义,所以我假设它没有被传递。

为什么在return命令之后放置的列表变量不会在函数外部传递并可以自由使用,我需要做些什么,以便实际上可以在函数外部调用列表变量?

#Gather data about elements and turn into a list to check agsint function list later

!curl  https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/elements1_20.txt -o elements1_20.txt

elements_20 = open("elements1_20.txt","r")

elements_20.seek(0)

elements = elements_20.readline().strip()

element_list = []

while elements:
    element_list.append(elements)
    elements = elements_20.readline().strip()

print(element_list)



# define function to get user input and compile it into a list
def get_name():

    user_list = []

    while len(user_list) < 5:
        user_input=input("Name one of the first 20 items please kind sir: ")

        #check to make sure the input is unique 

        if user_input.lower() in user_list:
            print("please don't enter the same word twice")
        else:
            user_list.append(user_input.lower())

    return user_list


get_name()


print(user_list)

请注意,我需要函数不带任何参数,因此不能使用该方法作为解决方案。

1 个答案:

答案 0 :(得分:1)

您需要将返回的值从class test { function callback(){ echo "Test okay "; } } class classload{ var $class_instance; function __construct(){ spl_autoload_register (array( $this , 'library' )); } public function __call ($fn , array $args ){ if(isset( $this ->{ $fn })){ array_unshift( $args , $this ); call_user_func_array ( $this ->{ $fn }, $args ); } } function library($class){ $this->{$class} = new $class($this); //$this->class_instance = ${$class}; return $this; } } class classtwo { protected $load; function __construct(){ $this->load = new classload(); } } class Classone extends classtwo { function view(){ //load and initialise class $this->load->library('test'); // print_r($this->load->library('test')); echo $this->test->callback(); } } $init = new classone(); echo $init->view(); 保存到函数范围之外的名为get_name()的变量中,以便进行打印:

user_list

在不存储返回值的情况下,该函数将自行完成,将其返回到堆栈中,然后该值将被任何内容捕获,然后被取消引用。 #Storing the returned value from the function: user_list = get_name() print(user_list) 在函数主体内的分配仅在函数范围内适用。一旦返回,程序将不再“看到”任何名为user_list的变量,这将导致user_list语句失败。