python 高级面试题_Python高阶面试题
3.mysql事務(wù)的4個(gè)層次:
數(shù)據(jù)庫(kù)事務(wù)的隔離級(jí)別有4個(gè),由低到高依次為Read uncommitted(未授權(quán)讀取、讀未提交)、Read committed(授權(quán)讀取、讀提交)、Repeatable read(可重復(fù)讀取)、Serializable(序列化)
4.迭代器和生成器:
生成器是迭代器的一種。
生成器:以yield結(jié)尾,用next()調(diào)用,每次調(diào)用一次,產(chǎn)生會(huì)一個(gè)值。
迭代器:需要自定義iter()方法,當(dāng)調(diào)用到最后一個(gè)值之后再調(diào)用會(huì)拋出StopIteration 異常。
總結(jié):有yield的函數(shù)就是生成器。
5.可變對(duì)象和不可變對(duì)象:
可變:list、dict、set
不可變:strings,unmber,tuple
6.裝飾器的作用:
為已經(jīng)存在的對(duì)象添加額外的功能
eg:寫(xiě)一個(gè)計(jì)算時(shí)間的裝飾器
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。其區(qū)別及如何選擇:
區(qū)別:
InnoDB 支持事務(wù),MyISAM 不支持事務(wù),回滾將造成不完全回滾,不具有原子性。
InnoDB 支持外鍵,而 MyISAM 不支持。
InnoDB支持行級(jí)鎖,而MyISAM只支持表級(jí)鎖。
MyISAM支持全文索引
選擇:
因?yàn)镸yISAM相對(duì)簡(jiǎn)單所以在效率上要優(yōu)于InnoDB.如果系統(tǒng)讀多,寫(xiě)少。對(duì)原子性要求低。那么MyISAM最好的選擇。且MyISAM恢復(fù)速度快。可直接用備份覆蓋恢復(fù)。
如果系統(tǒng)讀少,寫(xiě)多的時(shí)候,尤其是并發(fā)寫(xiě)入高的時(shí)候。InnoDB就是首選了
8.GIL的作用:
多線程情況下必須存在資源的競(jìng)爭(zhēng),GIL是為了保證在解釋器級(jí)別的線程唯一使用共享資源(cpu)
9. MySQL刪除一張表
DROP TABLE table_name;
總結(jié)
以上是生活随笔為你收集整理的python 高级面试题_Python高阶面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 零食青蛙产品有哪些分区?
- 下一篇: 什么食物好吃又不长胖?