0

我有以下代码块,并且在外壳中收到此消息...

“函数 word_switch 在 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 回答