2

私の質問は、関数出力の代わりに None が印刷される理由と、関数出力がその位置の前に取得される理由です。

def print_spam():
    print('spam')


def do_twice(r,ps):
    g  = ps()
    print(r,'is a',g)
    print(r,'is a',ps())

do_twice('xyz',print_spam)

出力は

spam
xyz is a None
spam
xyz is a None
4

2 に答える 2

11

関数は何もprint_spam()しませんreturn。それはただprintの声明です。

次のように変更します。

def print_spam():
    print('spam')
    return 'spam'

関数は何も返さないため、デフォルトはNoneです。関数の出力を に代入するgと、返された関数の文字列 ( spam) が含まれます。

于 2013-04-29T06:20:42.430 に答える
1

交換を検討

g  = ps() 
print(r,'is a',g)

g  = ps 
print r,'is a', 
g()

とにかく、他の回答で指摘されているように、print_spam() は None を返します

于 2013-04-29T06:29:26.157 に答える