Распечатайте элементы listdir на новой строке - получите None
У меня есть этот кусок кода:
import os
def listdir(path):
print(os.listdir(path))
print '\n'.join(os.listdir(path))
который возвращается
['.idea', 'commands', 'testfile.py', '__pycache__']
.idea
commands
testfile.py
__pycache__
None
Я не понимаю, почему я получаю значение None в последней строке? Спасибо за любой совет.
2 ответа
Решение
Когда вы звоните listdir
Вы пытаетесь напечатать его возвращаемое значение?
print listdir(path)
listdir
не возвращает значение, так что если вы сделали это print
заявление напечатает None
, Оставь это print
:
listdir(path)
Если нет оператора return, функция неявно возвращает None
,
>>> def func():
... 2013 # no value is being returned
...
>>> func()
>>> func() is None
True
>>> def func():
... return 2013
...
>>> func()
2013