我发现了一种在函数之间传递变量的简单方法。
但是,我很好奇,看看其他方法是否更简单,例如通过创建一个类。或者,实际上,如果我传递变量的方法有问题。
我最近在努力理解如何在函数之间传递变量。
对于这个问题,有几个针对新手的StackOverflow问题(请参阅here,here和here)。但是,许多答案往往过于特定于提问者提供的代码片段。
我想了解一般的工作流程。也就是说,例如,如何将variableA传递给functionA,进行操纵,然后传递给functionB,再次更改,然后在functionC中输出。
我想我有一个解决方案:
def main():
output()
def function1():
sentence = ("This is short.") # here is a string variable
value = (10) # here is a number variable
return sentence, value # they are returned
def firstAddition():
sentence, value = function1() # variables recalled by running function1()
add1stSentence = "{}at is longer.".format(sentence[0:2]) # string changed
add1stValue = 2 * value # number changed
return add1stSentence, add1stValue # the changed values are returned
def secondAddition(): # This function changes variables further
add1stSentence, add1stValue = firstAddition()
add2ndSentence = "{} This is even longer.".format(add1stSentence)
add2ndValue = 2 * add1stValue
return add2ndSentence, add2ndValue
def output(): # function recalls all variables and prints
sentence, value = function()
add1stSentence, add1stValue = firstAddition()
add2ndSentence, add2ndValue = secondAddition()
print(sentence)
print(str(value))
print(add1stSentence)
print(str(add1stValue))
print(add2ndSentence)
print(str(add2ndValue))
以上代码的输出如下:
这很短。 10 那更长。 20 那更长。这甚至更长。 40
原始句子和值变量在函数之间传递。
我传递变量的方式有四个步骤:
我的问题是:
(a)我的方式是否被接受?
(b)是否有更好或更优雅的方法在函数之间传递变量?
答案 0 :(得分:0)
将变量传递给函数的方法是通过函数自变量(也称为函数参数)。
根据您的情况,您可以修改functionB以接受输入。您的示例有点复杂,但是我将其简化为您更容易理解。
现在,您实际上正在执行以下操作:
def functionA():
return 12
def functionB():
return 5
def caller():
holder = functionA() + functionB()
print(holder)
通常,此可以起作用,但是更喜欢执行以下操作:
def functionA():
return 5
def functionB(number):
return(number+5)
def caller():
holder = functionA()
output = functionB(holder)
print(output)
甚至:
def caller():
print(functionB(functionA()))
您可以将功能的输出传递给其他功能。
在继续进行更复杂的事情之前,我会详细了解python函数https://www.tutorialspoint.com/python3/python_functions.htm。