python 高级面试题_Python高阶面试题
3.mysql事務的4個層次:
數據庫事務的隔離級別有4個,由低到高依次為Read uncommitted(未授權讀取、讀未提交)、Read committed(授權讀取、讀提交)、Repeatable read(可重復讀取)、Serializable(序列化)
4.迭代器和生成器:
生成器是迭代器的一種。
生成器:以yield結尾,用next()調用,每次調用一次,產生會一個值。
迭代器:需要自定義iter()方法,當調用到最后一個值之后再調用會拋出StopIteration 異常。
總結:有yield的函數就是生成器。
5.可變對象和不可變對象:
可變:list、dict、set
不可變:strings,unmber,tuple
6.裝飾器的作用:
為已經存在的對象添加額外的功能
eg:寫一個計算時間的裝飾器
import time
def timer(func):
def warper(*args,**kwargs):
start = time.time()
func(*args,**kwargs)
end = time.time()
return end-start
return warper
@timer
def function(a):
time.sleep(2)
return [x for x in range(a)]
print(function(10000))
7.mysql索引:常用的有兩種,MyISAM 和 InnoDB。其區別及如何選擇:
區別:
InnoDB 支持事務,MyISAM 不支持事務,回滾將造成不完全回滾,不具有原子性。
InnoDB 支持外鍵,而 MyISAM 不支持。
InnoDB支持行級鎖,而MyISAM只支持表級鎖。
MyISAM支持全文索引
選擇:
因為MyISAM相對簡單所以在效率上要優于InnoDB.如果系統讀多,寫少。對原子性要求低。那么MyISAM最好的選擇。且MyISAM恢復速度快。可直接用備份覆蓋恢復。
如果系統讀少,寫多的時候,尤其是并發寫入高的時候。InnoDB就是首選了
8.GIL的作用:
多線程情況下必須存在資源的競爭,GIL是為了保證在解釋器級別的線程唯一使用共享資源(cpu)
9. MySQL刪除一張表
DROP TABLE table_name;
總結
以上是生活随笔為你收集整理的python 高级面试题_Python高阶面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 零食青蛙产品有哪些分区?
- 下一篇: websocket python爬虫_p