使用Python在其他模块中导入函数的返回值时出错

时间:2018-10-05 04:39:38

标签: python

我有一个文件(calculations),其文件名为number,该函数执行时返回的值为i。现在,我在另一个文件中定义了一个函数,并希望打印值i。但是,当我尝试“导入” i时,收到一条错误消息,提示无法导入i

这是我的代码(其中i应该从number中定义的函数calculations导入)

import calculations

def myfunction():
    calculations.number()
    print(calculations.i)

显然,在没有myfunction()语句的情况下执行print(calculations.i)可以成功进行。但是,当我尝试使用相同的方法导入i时,却没有。我也尝试过使用from calculations import i,尽管它也不起作用。它可能与以下事实有关:number()函数中上一次“提及”它的原因是return i(尽管这可能不是问题),或者与它不存在有关calculations文件本身的定义,但在该文件中存储的函数之一的定义之内...

无论如何,发生了什么以及如何导入该值?

编辑:这是文件calculations中的代码:

def number():
    a = 2
    i = 0
    while a < 100
        a = a + 2
        i = i+1
    return i

1 个答案:

答案 0 :(得分:2)

您不能导入该函数本地的变量,以下是一些可以使用该变量的方法

解决方案1:

这是文件计算中的代码:

def number():
    a = 2
    i = 0
    while a < 100
        a = a + 2
        i = i+1
    return i

您可以在myfunction中调用数字并将其分配给某个变量,例如我

import calculations

def myfunction():
    i = calculations.number()
    print(i)

解决方案2:

或者您可以这样做:

这是文件计算中的代码:

i = number()
def number():
    a = 2
    j = 0
    while a < 100
        a = a + 2
        j = j+1
    return j

您的功能

import calculations
def myfunction():
    print(calculations.i)

解决方案3:

或者您可以这样做:

这是文件计算中的代码:

global i = 0
def number():
    a = 2
    while a < 100
        a = a + 2
        i = i+1
    return i

您的功能

import calculations
def myfunction():
    print(calculations.i)