python定义函数时的默认返回值

2018-06-18 01:59:24来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

python定义函数时,一般都会有指定返回值,如果没有显式指定返回值,那么python就会默认返回值为None, 即隐式返回语句: return None

执行如下代码

def now():
    print('2018-03-20')

直接执行函数的话,结果为:

但是如果打印函数的话

print(now())

打印结果为:

相当于执行了

def now():
    print('2018-03-20')
    return None
print(now())

如果不想要有None,那么就要添加返回值

def now():
    return '2018-03-20'

print(now())

但是如果代码改成:

def now():
    return print('2018-03-20')
print(now())

 

>>> print
<built-in function print>

打印结果还是带有 None,个人猜想如下

编辑于 2018-03-30 12:53

print 函数的打印结果

 

>>> print()

 

打印为空

>>> print(print())

None

由上述代码,可以猜测该代码的执行顺序

先执行括弧里的 print() 打印的内容为空,print函数执行完后自带换行,接着再执行括弧外的 print 函数,即打印括弧里的print() 的返回值,由此可知 print 函数的默认返回值为 None

再看如下代码

>>> print(print('123'))
123
None

执行顺序如上述所猜测的一样

>>> def now():
...     pass
...
>>> print(now())
None

定义的函数 now, 函数体为空,未设置返回值,所以 now() 执行的返回值为 None 被打印出来

>>> def now():
...     return print
...
>>> now
<function now at 0x000001BECE4C3840>
>>> now()
<built-in function print>
>>> print(now)
<function now at 0x000001BECE4C3840>

现在 now 函数返回值是 print函数,所以打印 now() 就是返回的 print 函数

>>> def now():
...     return print('你好')
...
>>> print(now())
你好
None

分析上述代码

 

先执行括弧里 now(),执行now函数的语句块,now 函数只有一个返回值 print('你好'),所以先打印出字符串 '你好',由于 print函数的默认返回值是 None,最外层的 print 函数就把里层的 print 函数的返回值也打印了出来

 

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:用Python做股市数据分析(一)

下一篇:Linux下安装Python3