想要让Python编程更加魔法化吗?那么你一定不会陌生Python魔术变量。
一、魔术变量是什么?
Python魔术变量(Magic Variables)是一组在交互式Python shell下自动设置的特殊变量,以供程序员方便地使用和访问。因为这些变量让你更快、更高效地看到、理解你的程序的行为和操作,所以它们被称为“魔术变量”。
Python 3.7.3 (default, Mar 26 2019, 21:43:19)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
上面的输出是Python shell自动设置的魔术变量之一:`__banner__`,显示了Python解释器的版本和当前使用的操作系统。
二、常见的魔术变量
以下是比较常见的魔术变量,除了已经介绍的`__banner__`之外,还包括:
1、`__doc__`
`__doc__`是一个包含模块、函数或类的文档字符串(Docstring)的字符串(String)。
def add(a, b):
""" Return the sum of a and b. """
return a + b
print(add.__doc__)
输出结果:
Return the sum of a and b.
2、`__name__`
`__name__`是一个标准的Python变量,用于表示当前模块的名称。当模块被导入时,这个变量被自动赋值为名字字符串。如果直接运行模块,那么__name__则被赋值为字符串“__main__”。
if __name__ == "__main__":
print("This is main block.")
else:
print("This is import block.")
输出结果:
This is main block.
3、`__file__`
`__file__`是一个字符串,表示当前被解释的文件的名称(含有完整路径)。如果当前程序不是从文件中加载,而是通过某些其他方式加载——比如,命令行或字符串——那么其值就为“
import os
print(f"The path of this file is: {os.path.abspath(__file__)}")
输出结果:
The path of this file is: /Users/user/magic_variables.py
4、`_`
`_`是一个特殊的Python变量,也是一种魔术变量,最近一次输出的表达式被赋值给它。如果输出的是一串字符,那么这个字符会作为一个Python字符串被赋值给`_`变量。
5 * 2
print(_)
输出结果:
10
另外,IPython shell中有一些如下的变量,也称为“魔术变量”:
- `_i`表示当前输入的是第几个Python命令。
- `_ih`表示一个输入的Python命令历史列表。
- `_oh`表示一个输出的Python命令历史列表,键是输入历史中的相同数字编号。
三、结语
Python魔术变量虽然只是一些看似无足轻重的变量,但是它们却可以使你的Python编程更为高效和便捷。熟练地使用这些魔术变量,可以让你更深入地理解和掌握Python语言。