Python是什麼類型的英語
答:動態強類型語言,靜態語言是指代碼在編譯的時候變量數據類型是確定的,動態語言是指運行後變量數據類型是確定。弱類型是指不同類型進行運算時候,會進行隱式轉換,而強類型偏向不容忍隱式類型轉換。如Python中 1 + ”1“
會報錯,而在js中不會。
爲什麼使用Python語言
- 膠水語言、輪子多、應用廣泛
- 語言靈活、生產力高
- 性能問題、代碼維護問題(動態語言通病)、Python2/Python3兼顧問題
什麼是鴨子類型
- 關注點在對象的行爲,而不是對象的類型,更關注接口而非類型
- 比如file、StringIo、socket對象都支持read/write方法
- 再比如定義了__iter__魔法函數的對象可以使用for進行迭代
什麼是monkey patch
- 運行的時候替換
- 比如gevent庫需要修改內置的socket
from gevent import monkey;monkey.patch_socket()
import socket
print('Before monkey patch')
print(socket.socket()) # <socket.socket>
from gevent import monkey
monkey.patch_socket()
print('After monkey patch')
print(socket.socket()) # <gevent._socket3.socket object>
# 自定義monkey patch
import time
print(time.time())
def _time():
return 'time patch'
time.time = _time # 1581252175.642231
print(time.time()) # time patch
什麼是自省
- 運行時判斷一個對象的類型的能力
- python一起皆對象 理解鏈接
- Inspect 模塊提供了更多獲取對象信息的函數