好吧所以我在这里有一个幼儿园级别的问题,我可以绕过它 - 但我决定咬下尴尬然后问它。所以在传递论据时,从根本上说,有什么区别?
def add():
x = 'Print X'
print (x)
和
def add(x):
x = 'Print X'
print (x)
我已经能够在没有真正实现这一目标的情况下进行编码 - 但是这个程序的读取方式有何不同?
不要活着吃我,我知道这是基本的哈哈。答案 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;