6

我刚刚开始学习 Python,我目前正在阅读一本正在教我的书,在书中,一个函数就像我在下面所做的那样打印第一个函数中定义的实际文本,但是当我运行我的脚本,它说: <function two at 0x0000000002E54EA0>作为输出。我究竟做错了什么?我安装了错误的 Python 还是什么?我下载的是3.3.0版本

这是我的代码:

def one():
    print ("lol")
    print ("dood")

def two():
    print (one)
    print (one)

print (two)
4

5 回答 5

17

这不是您要寻找的答案……</p>

但是为了完整性,假设您确实想要打印函数本身的代码。这仅在代码是从文件(而不是 REPL)执行时才有效。

import inspect
code, line_no = inspect.getsourcelines(two)
print(''.join(code))

也就是说,这样做的充分理由并不多。

于 2013-01-15T02:27:28.340 回答
7

您的函数已经打印文本,您不需要打印函数。打电话给他们(不要忘记括号)。

def one():
    print ("lol")
    print ("dood")

def two():
    one()
    one()

two()
于 2013-01-15T02:00:19.510 回答
1

您使用以下语法调用函数

def two():
    one()
    one()

two()

括号内的内容是您将在本书后面学习的输入参数。

于 2013-01-15T01:59:47.607 回答
1

打印发生在您的函数内部。函数本身就是要执行的代码序列。在您的情况下,此代码正在打印"lol""dood"显示在屏幕上。为了执行此代码,您只需输入函数名称即可调用该函数:

def one():
   print("lol")
   print("dood")

def two():
   one() #simply type the function's name to execute its code
   one()

two()

调用print函数本身会打印函数在调用时执行的代码在内存中的位置,因此会出现乱码输出。

于 2013-01-15T02:07:11.080 回答
-1

您正在打印函数本身,而不是函数应该打印的内容,也许您想以这种方式打印

def one():
    print ("lol")
    print ("dood")

def two():
    print one()
    print one()

print two()

输出将是:lol dood

于 2013-01-15T02:04:44.000 回答