我有以下代码块,并且在外壳中收到此消息...
“函数 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))
我有以下代码块,并且在外壳中收到此消息...
“函数 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))
您需要生成反向列表并将其返回,而不是函数本身。你可以这样做
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']
这是什么意思?输出意味着该函数word_switch
位于该内存位置。
你为什么得到它?因为你要求的。请注意,在定义函数的方式中,调用它时会获取函数对象本身,然后打印它。
每次打印函数对象时都会发生同样的事情,例如:
>>> def f(x):
... x
>>> print f
<function f at 0xb72eda3c>
>>>
如果您想要的只是反转一个列表,您可以简单地使用reverse
列表对象的方法,如对 OP 的评论中所建议的那样。没有必要创建您自己的函数。如果出于某种原因,您需要自己的函数,那么您可以按照@thefourtheye 在他的回答中建议的方式编写它。