在Python中,如何将变量从一个函数导入到另一个函数?

在Python中,如何将变量从一个函数导入到另一个函数?,python,function,import,Python,Function,Import,我正在做一个项目,我需要导入一个函数中的变量,并在另一个函数中使用它。下面是我试图做的一个例子。(这不是我的代码,只是一个例子) 有没有办法将X从一个函数导入到另一个函数 谢谢 不能将变量从一个函数导入另一个函数。函数用于返回值和变量,您可以随时调用函数以获取其返回值。例如: def interest(amt): return amt * FIXED_INT def calc(debt, time): return debt * interest(debt) ** time

我正在做一个项目,我需要导入一个函数中的变量,并在另一个函数中使用它。下面是我试图做的一个例子。(这不是我的代码,只是一个例子)

有没有办法将X从一个函数导入到另一个函数


谢谢

不能将变量从一个函数导入另一个函数。函数用于返回值和变量,您可以随时调用函数以获取其返回值。例如:

def interest(amt):
    return amt * FIXED_INT

def calc(debt, time):
    return debt * interest(debt) ** time

可以将变量传递到参数中

 def interest(day,month,year):
    interest = x
    return interest


 def calc(debt,time, interest):
    result = (debt*interest)/time

 ...     

 x = interest(day,month,year)
 calc(debt,time, x)

你考虑过使用一个类吗?如果您有必须传递给许多函数的变量,则类非常有用

class Foo:
    def __init__(self):
        pass

    def set_x(self):
        self.x = 5 # Whatever your source is!

    def calculate_something(self, foo, bar):
        return foo * bar * self.x

q = Foo()
q.set_x()
print(q.calculate_something(2, 3))
输出:
30

如果您对使用类不感兴趣,可以执行以下操作:

  • 取x
  • 将其传递给
    兴趣
    计算
    而不是在
    兴趣
  • 我是这样做的:

    def grades_sum(scores):
        sum1 = 0
        for i in scores:
            sum1 = sum1 + i
        print sum1
        return sum1
    
    grades_sum([100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5])
    
    def grades_average(grades):
    
        average = grades_sum(grades)/float(len(grades))
    
        print average
    
        return average
    
    grades_average([100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5])
    
    基本上,我在第一个函数中返回了sum1,因此当我在第二个函数中调用它时,sum1将被float(len(grades))除以。希望我能帮忙!
    请注意,对于格式难看的文本表示歉意,这是我的第一篇文章。

    x在哪里声明?通过导入,您是否试图在同一脚本上从一个函数转换到另一个函数?x是我从第一个函数得到的结果,它只是一个文字示例,我需要导入我在第一个函数中得到的结果,并在第二个函数中使用。@VigneshKalai是的,我在第一个函数中得到了一个结果(它是一个可变利率),我需要在第二个函数中使用它(它计算客户将支付的利息)。对不起,但是“如果您有必须传递给许多函数的变量,则类非常有用”就像说“如果您有必须在许多不同位置运行的代码,则goto非常有用”
    def grades_sum(scores):
        sum1 = 0
        for i in scores:
            sum1 = sum1 + i
        print sum1
        return sum1
    
    grades_sum([100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5])
    
    def grades_average(grades):
    
        average = grades_sum(grades)/float(len(grades))
    
        print average
    
        return average
    
    grades_average([100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5])