我刚刚学习(正在学习)函数参数如何在Python中工作,我开始尝试使用它没有明显的原因,当这个:
def jiskya(x, y):
if x > y:
print y
else:
print x
print(jiskya(2, 3))
Run Code Online (Sandbox Code Playgroud)
给出了输出:
>>>
2
None
Run Code Online (Sandbox Code Playgroud)
它None来自哪里?还有,这是什么?
phi*_*hag 45
它是您打印出的函数的返回值.如果没有return语句(或者只是return没有参数),则会return None在函数末尾添加一个隐式语句.
您可能希望返回函数中的值而不是打印它们:
def jiskya(x, y):
if x > y:
return y
else:
return x
print(jiskya(2, 3))
Run Code Online (Sandbox Code Playgroud)
好的,当你这样做时开始:
print(jiskya(2, 3))
Run Code Online (Sandbox Code Playgroud)
你得到的东西几乎相当于:
print(print(2))
Run Code Online (Sandbox Code Playgroud)
那么发生了什么?所述print(2)被打印出如图2所示,并返回None其由外呼叫打印.直截了当.
现在看看这个:
def hello():
return 2
Run Code Online (Sandbox Code Playgroud)
如果你这样做:
print(hello())
Run Code Online (Sandbox Code Playgroud)
你得到2,因为如果你打印出一个函数你会得到任何return价值.(该return值用return someVariable.表示.
现在即使print没有像大多数函数那样的括号,但在这方面它只是一个特殊功能.什么打印返回?没有.因此,当你print print someVariable,你将获得None第二部分,因为print的返回值是None.
正如其他人所说:
def jiskya(x, y):
if x > y:
print(y)
else:
print(x)
Run Code Online (Sandbox Code Playgroud)
应该重写:
def jiskya(x, y):
if x > y:
return y
else:
return x
Run Code Online (Sandbox Code Playgroud)
“无”从何而来?
功能。
还有,这是什么?
这就是函数返回的内容。
在Python中,每个函数都会返回一些东西。使用元组它可以“是多个东西”,或者使用 可以“什么都不是” None,但它必须返回一些东西。这就是我们处理无法指定返回类型这一事实的方式(这没有意义,因为您没有为其他任何内容指定类型)。当解释为用于打印的字符串时,None将替换为字符串“None”。
None是一个特殊的物体,应该代表任何真实事物的缺失。它的类型是NoneType(它是该类的一个实例)。每当您没有显式返回任何内容时,您就会隐式返回 None 。
您编写了函数来打印两个值x或 之一y,但不返回任何内容。于是就None被退回了。然后你要求 Python 打印调用该函数的结果。因此它调用了该函数(打印其中一个值),然后打印返回值,即None文本“None”。
| 归档时间: |
|
| 查看次数: |
62314 次 |
| 最近记录: |