传递零v。一个参数的函数

时间:2018-04-08 18:09:21

标签: python parameters

好吧所以我在这里有一个幼儿园级别的问题,我可以绕过它 - 但我决定咬下尴尬然后问它。所以在传递论据时,从根本上说,有什么区别?

def add(): 
    x = 'Print X'
    print (x)

def add(x): 
    x = 'Print X' 
    print (x)

我已经能够在没有真正实现这一目标的情况下进行编码 - 但是这个程序的读取方式有何不同?

不要活着吃我,我知道这是基本的哈哈。

3 个答案:

答案 0 :(得分:3)

请检查passing arguments on python

代码上的“x”没有用处,所以当你将参数传递给你希望在函数中使用数据的函数时,将参数传递给参数没有任何意义,例如:

def add(x,y):
    return x+y

但是,如果你输入函数时,你将覆盖你作为参数获得的任何价值:

def add(x): 
    x = 'Print X'  <--- here
    print(x)

没有意义。

但是,如果您的代码看起来很像这样,那么它可能很有用。

def add(x): 
    print(x)

add('Print X')

答案 1 :(得分:1)

就您的特定示例而言,这两个函数在输出方面没有差异。但是,通过少量修改,您可以制作其中之一,这是其他的概括。考虑一下:

功能1:

def add(): 
   x = 'Print X'
   print (x)

功能2

def add(x): 
   print (x)

调用第一个函数时,它会用字符串初始化x,然后打印该字符串。但是,在调用第二个函数时,您需要为x传递一个值(这称为参数,可以是&#34;任何&#34;值)。如果您将其称为add('Wow! this is awesome!'),则该函数将打印您的字符串。由于函数2可以打印您作为参数而不是硬编码的任何字符串,因此我将函数2称为函数1的泛化。

你的函数2,以与我的函数2相同的方式接收一个字符串,但它用x覆盖'Print X'的值。因此,无论给出的参数如何,它都将始终打印相同的字符串。

希望这对你有好处!

答案 2 :(得分:0)

看起来你混合了一个函数的定义和调用。

def add(x): 
    print (x)

是一个定义。

add ("Print x")

调用该函数。 在范围内,如果函数变量x具有值&#34;打印x&#34;