将参数传递给函数 - 从Python开始

时间:2013-08-30 20:27:08

标签: python

使用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()的两个实例都没有使用相同的参数传递给它?

9 个答案:

答案 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