使用Python开始的第3.5节“将参数传递给函数”有一个我不遵循的例子:
# This program demonstrates an argument being
# passed to a function
def main():
value = 5
show_double(value)
# The show_double function accepts an argument
# and displays double its value
def show_double(number):
result = number * 2
print result
#call main function
main()
我不知道(number)
跟随函数show_double
如何与主函数有关,或与任何事物有关。我也不明白为什么它在主函数中列为show_double(value)
。我不知道为什么show_double()
的两个实例都没有使用相同的参数传递给它?
答案 0 :(得分:2)
因此,当您使用()
调用函数时,您说我希望此函数运行。在底部,您正在调用main
函数,该函数又使用show_double
参数调用5
函数。
答案 1 :(得分:2)
基本上show_double(value)
将主函数中定义的value
传递给show_double(number)
函数,该函数期望一个数字作为参数接收
def main():
value = 5
show_double(value) # Function Call
# The show_double function accepts an argument
# and displays double its value
def show_double(number): # Function defination
result = number * 2
print result
#call main function
main()
答案 2 :(得分:1)
main函数调用传递参数值的show_double()
。
然后在函数内加倍值并返回
答案 3 :(得分:1)
main只取值= 5,并将其拍成show double函数
在某种程度上你可以像这样重写整个代码(因为它相对简单)但它可能有助于理解
def main():
value = 5 #the main() part
result = value * 2 #the show_double(number) part (notice how i changed the number varialbe to value, so you can follow what is happening to 'value'
print result
答案 4 :(得分:1)
因此,您可以看到代码底部是如何调用main()
的?这就是运行main函数的原因,或者让编译器/解释器知道要运行哪个函数。在main函数中,它执行相同的操作,但现在它调用的函数是show_double(number)
。括号中有一个'参数',一个必须在通话中发送的值。因此,为了满足这一要求,main方法调用show_double(value)
,它与show_double(5)
相同。现在我们处于show_double
函数中。这里需要参数5
并将其设置为名为number
的变量。它将它翻倍,然后将其返回main
。
答案 5 :(得分:1)
函数获取参数的索引,而不是名称。这就是为什么数字和价值无关,但只是工作
function test(first, second, third):
print first
print second
print third
param1 = 'hello'
param2 = 'world'
test(param1, param2, 'python')
结果
hello
world
python
答案 6 :(得分:1)
我在下面解释Python如何处理您的程序。我制定了一般规则,并说明它们如何适用于您的计划。还有许多其他规则(例如return
),所以我在下面写的只是简化了真正的一般规则。
Python从上到下执行(即处理)程序。首先执行def main ...
块(包括以下空格开头的行),这将创建main
函数。然后执行def show_double ...
块(其后面带有缩进行),这将创建show_double
函数。然后执行main()
行,调用main
函数。函数调用从上到下执行函数的主体(即以空格开头的行)。在处理完整个函数体之后,在调用下面的行中继续执行。现在main
下面没有这样的行,所以程序退出。
要执行main
,Python会执行value = 5
行,这会创建局部变量value
。该变量仅在main
调用中可用。然后执行show_double(value)
,这是一个函数调用,因此要执行的下一行将是show_number
主体的第一行。但在此之前,Python创建名为number
的局部变量(因为它在def show_number(...)
中),并使用值value
(即5
)初始化它,因为{{在value
调用中指定了1}}。函数调用中括号内的项称为 arguments 。它们用于指定被调用函数的输入。在呼叫站点(show_number(...)
)show_number(value)
被指定为输入,其值(value
)可用作本地变量5
。
答案 7 :(得分:1)
当你调用show_double(value)时,它会将'value'传递给'number'参数。 def show_double(number)不是要查找名为number的变量,它只是意味着第一个参数(在本例中为'value')将被赋值给show_double函数中的变量'number'。
你也可以调用show_double(5)然后将它分配给show_double函数中的数字变量。
答案 8 :(得分:0)
show_double(value)
是函数调用,参数是value
。你基本上从main函数调用show_double。
def show_double(number):
这基本上是针对该特定功能启动功能定义的地方。您可以从其他地方调用它,例如从主函数调用它。
number
参数使您可以使用任何具体值调用此函数,因此它不是硬编码,也不是使用全局变量。在这种特殊情况下,您将值5
传递给它进行打印,但是这可能是6,7,10左右的其他函数调用。基本上,这种方式可以使您的打印更加灵活。
在您的代码中,从末尾调用main函数,因此链将是:
main
- > show_double
(这将打印您的价值) - >回到main