1. 程式人生 > >底層程式碼實現原理--每天更新

底層程式碼實現原理--每天更新

目錄

(小聲bb:不定期更新)

1.print呼叫Python中底層的什麼方法 2. …

1.print呼叫Python中底層的什麼方法:

關於python中的print函式,我們可以進入到這個函式裡進行檢視 print的定義如下:

def print(self, *args, sep=' ', end='\n', file=None)

其中有如下注釋:

print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

關鍵字引數file是定義流輸出的檔案,可以是標準的系統輸出sys.stdout,也可以重定義為別的檔案。 在python中,print其實是sys.stdout.write()的方法;

但是: print()中,傳入的引數,是進行了轉為字串的操作的,因為sys.stdout.write()的引數,只允許接收字串型別的;如下程式碼:

print(10)
sys.stdout.write(str(10))

如果寫成 sys.stdout.write(10),將會報出下面的錯誤:

TypeError: write() argument must be str, not int

其次:sys.stdout.write()還增加了換行指令,也就是

sys.stdout.write('需要列印的內容'  + '\n')

下面兩句程式碼的執行效果是完全一樣的:

print()
sys.stdout.write('\n')

而且:sys.stdout.write( )裡面是必須要傳入一個引數的,沒有引數就會報錯。

總結: print在python中的底層實現是:呼叫了sys.stdout.write( )這個函式; 但是,在使用方法上,實際上是: print(obj) == sys.stdout.write(str( obj ) + '\n')