在Python中,如何将变量从一个函数导入到另一个函数?
我正在做一个项目,我需要导入一个函数中的变量,并在另一个函数中使用它。下面是我试图做的一个例子。(这不是我的代码,只是一个例子) 有没有办法将X从一个函数导入到另一个函数在Python中,如何将变量从一个函数导入到另一个函数?,python,function,import,Python,Function,Import,我正在做一个项目,我需要导入一个函数中的变量,并在另一个函数中使用它。下面是我试图做的一个例子。(这不是我的代码,只是一个例子) 有没有办法将X从一个函数导入到另一个函数 谢谢 不能将变量从一个函数导入另一个函数。函数用于返回值和变量,您可以随时调用函数以获取其返回值。例如: def interest(amt): return amt * FIXED_INT def calc(debt, time): return debt * interest(debt) ** time
谢谢 不能将变量从一个函数导入另一个函数。函数用于返回值和变量,您可以随时调用函数以获取其返回值。例如:
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
如果您对使用类不感兴趣,可以执行以下操作:
兴趣
和计算
而不是在兴趣
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])