我刚开始学习Python,我正在读一本教我的书,
在本书中,一个函数就像我在下面创建的函数一样打印出第一个函数中定义的实际文本,但是当我运行我的脚本时它会说:
<function two at 0x0000000002E54EA0>
作为输出。我究竟做错了什么?我安装了错误的Python或其他东西吗?我下载了3.3.0版本
这是我的代码:
def one():
print ("lol")
print ("dood")
def two():
print (one)
print (one)
print (two)
答案 0 :(得分:11)
这不是您正在寻找的答案......
但是为了完整性,假设您确实想要打印函数本身的代码。这只有在代码是从文件(而不是REPL)执行时才有效。
import inspect
code, line_no = inspect.getsourcelines(two)
print(''.join(code))
尽管如此,这样做的原因并不多。
答案 1 :(得分:6)
您的功能已打印文本,您无需打印功能。只需打电话给他们(不要忘记括号)。
def one():
print ("lol")
print ("dood")
def two():
one()
one()
two()
答案 2 :(得分:1)
您可以使用以下语法调用函数
def two():
one()
one()
two()
括号内的内容是输入参数,您将在本书后面学到这些参数。
答案 3 :(得分: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
会打印出函数在调用时执行的代码的内存位置,从而输出乱码。
答案 4 :(得分:-1)
您正在打印功能本身,而不是打印功能,也许您想以这种方式打印
def one():
print ("lol")
print ("dood")
def two():
print one()
print one()
print two()
输出将是: 大声笑 DOOD