想要讓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語言。