Python 在<;函数uuu main uuu.添加u编号(x,y)>;

Python 在<;函数uuu main uuu.添加u编号(x,y)>;,python,ipython,Python,Ipython,假设有这样一个函数: In [56]: def add_numbers(x, y): return x + y 当我不带括号的时候 In [57]: add_numbers Out[57]: <function __main__.add_numbers(x, y)> 发件人: “\uuuu main”是顶级代码所在作用域的名称 执行。读取时,模块的\uuuu name\uuuu设置为等于'\uuu main\uuuu' 来自标准输入、脚本或交互式提示 由于您是从标准输入运行Py

假设有这样一个函数:

 In [56]: def add_numbers(x, y): return x + y
当我不带括号的时候

In [57]: add_numbers
Out[57]: <function __main__.add_numbers(x, y)>
发件人:

“\uuuu main”
是顶级代码所在作用域的名称 执行。读取时,模块的
\uuuu name\uuuu
设置为等于
'\uuu main\uuuu'
来自标准输入、脚本或交互式提示


由于您是从标准输入运行Python,因此模块名称设置为
“\uuuuu name\uuuuu”
,并且定义的所有变量和函数都在该模块的范围内。

您将看到一个IPython特性。它使用了一个漂亮的打印机,将模块名预先添加到函数的名称中。如果禁用pretty打印机,您将获得:

>>def add_number(x,y):返回x+y
... 
>>>加号
>>>%p打印
漂亮的打印已关闭
>>>加号

函数的模块是
\uuuuu main\uuuu
,因为您以交互方式定义了它。如果您是从其他模块导入的,您会在那里看到模块名。

我写了这段代码,但我的代码打印了其他内容:
def main():
def add_numbers(x,y):如果u name_uu=='u main_u=:main()
我得到了这个:
In [59]: "__main__" in dir(add_numbers)
Out[59]: False
>>> def add_numbers(x, y): return x + y
... 
>>> add_numbers
<function __main__.add_numbers(x, y)>
>>> %pprint
Pretty printing has been turned OFF
>>> add_numbers
<function add_numbers at 0x107921598>