Распечатайте элементы 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
Другие вопросы по тегам