0

次のコードブロックがあり、シェルでこのメッセージを取得しています...

「関数 word_switch at 0x102b67a70」

これはどういう意味ですか? Python が関数を返す代わりにこれを出力するのはなぜですか?

ありがとう

D= ['foo', 'bar', 'OMG']

def word_switch (D: list) -> list:
    for i in D:
        reversed(i)
    return word_switch

print(word_switch(D))
4

2 に答える 2

2

関数自体ではなく、反転リストを生成して返す必要があります。あなたはこれを行うことができます

D = ['foo', 'bar', 'OMG']

def word_switch (D: list) -> list:
    return ["".join(reversed(i)) for i in D]
    #return [i[::-1] for i in D]  # Using slicing

print(word_switch(D))

出力

['oof', 'rab', 'GMO']
于 2013-11-11T10:30:52.623 に答える
0

どういう意味ですか?出力は、関数word_switchがそのメモリ位置にあることを意味します。

なぜあなたはそれを手に入れているのですか?あなたがそれを求めたからです。関数を定義する方法では、関数を呼び出すと、関数オブジェクト自体が取得されてから出力されることに注意してください。

関数オブジェクトを印刷するたびに、まったく同じことが起こります。たとえば、次のようになります。

>>> def f(x):
...       x
>>> print f
<function f at 0xb72eda3c>
>>>

リストを逆にするだけの場合はreverse、OP へのコメントで提案されているように、リスト オブジェクトのメソッドを使用するだけです。独自の関数を作成する必要はありません。何らかの理由で独自の関数が必要な場合は、@thefourtheye の回答で提案されている方法で記述できます。

于 2013-11-11T13:04:46.190 に答える