底層程式碼實現原理--每天更新
阿新 • • 發佈:2018-12-16
目錄
(小聲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')