我的功能遇到了一些麻烦。而不是所需的列表 返回,我得到的东西看起来像一个内存地址。这将是非常好的 如果有人能指出我哪里出错了。
这是代码
def listing():
t = [1, 2, 3, 4, 5]
return t
m = listing
print m
以下是我在命令行上的内容。
<function listing at 0x7f6d5f9f5a28>
答案 0 :(得分:5)
您忘记致电该功能:
m = listing()
如果没有()
,你所做的就是存储对函数对象的另一个引用。
答案 1 :(得分:2)
使用函数调用
m = listing()
答案 2 :(得分:1)
您可能习惯于不需要括号来调用函数的语言。想到Perl和Visual Basic。看看这个:
>>> def listing():
... t = [1, 2, 3, 4, 5]
... return t
...
>>> m = listing
>>> print m
<function listing at 0x100491b90>
>>> m()
[1, 2, 3, 4, 5]
>>>
因此,您的行m = listing
刚刚将该函数(listing
引用的内容)分配给另一个名称(m
)。对象可以包含任意数量的名称。功能也是对象。可以使用运算符()
调用的对象。
顺便说一句:
>>> listing
<function listing at 0x100491b90>
有点证明了这一点......