到底什么是Python?
•Python是一種解釋性語言。Python代碼在運(yùn)行之前不需要編譯。其它解釋性語言還包括PHP和Ruby。
•Python是動態(tài)類型語言,指的是在聲明變量時,不需要說明變量的類型。
•Python非常適合面向?qū)ο蟮木幊?OOP),因為它支持通過組合(composition)與繼承(inheritance)的方式定義類(class)。
•Python中沒有訪問說明符(類似C++中的public和private),這么設(shè)計的依據(jù)是“大家都是成年人了”。
對python的概念大家一定要搞清楚,這樣才能輕松的應(yīng)該python各種面試題,下面小編給大家?guī)砹薖ython 經(jīng)典面試題 21 道,感興趣的朋友一起看看吧。
1、Python如何實現(xiàn)單例模式?
Python有兩種方式可以實現(xiàn)單例模式,下面兩個例子使用了不同的方式實現(xiàn)單例模式:
1.
class Singleton(type):def __init__(cls, name, bases, dict):super(Singleton, cls).__init__(name, bases, dict)cls.instance = Nonedef __call__(cls, *args, **kw):if cls.instance is None:cls.instance = super(Singleton, cls).__call__(*args, **kw)return cls.instanceclass MyClass(object):__metaclass__ = Singletonprint MyClass()print MyClass()使用decorator來實現(xiàn)單例模式def singleton(cls):instances = {}def getinstance():if cls not in instances:instances[cls] = cls()return instances[cls]return getinstance@singletonclass MyClass:…
2:什么是lambda函數(shù)?
Python允許你定義一種單行的小函數(shù)。定義lambda函數(shù)的形式如下:labmda 參數(shù):表達(dá)式lambda函數(shù)默認(rèn)返回表達(dá)式的值。你也可以將其賦值給一個變量。lambda函數(shù)可以接受任意個參數(shù),包括可選參數(shù),但是表達(dá)式只有一個:
>>> g = lambda x, y: x*y>>> g(3,4)12>>> g = lambda x, y=0, z=0: x+y+z>>> g(1)1>>> g(3, 4, 7)14
也能夠直接使用lambda函數(shù),不把它賦值給變量:
>>> (lambda x,y=0,z=0:x+y+z)(3,5,6)
14
如果你的函數(shù)非常簡單,只有一個表達(dá)式,不包含命令,可以考慮lambda函數(shù)。否則,你還是定義函數(shù)才對,畢竟函數(shù)沒有這么多限制。
3:Python是如何進(jìn)行類型轉(zhuǎn)換的?
Python提供了將變量或值從一種類型轉(zhuǎn)換成另一種類型的內(nèi)置函數(shù)。int函數(shù)能夠?qū)⒎蠑?shù)學(xué)格式數(shù)字型字符串轉(zhuǎn)換成整數(shù)。否則,返回錯誤信息。
>>> int(”34″)34>>> int(”1234ab”) #不能轉(zhuǎn)換成整數(shù)ValueError: invalid literal for int(): 1234ab
函數(shù)int也能夠把浮點數(shù)轉(zhuǎn)換成整數(shù),但浮點數(shù)的小數(shù)部分被截去。
>>> int(34.1234)34>>> int(-2.46)-2
函數(shù)°oat將整數(shù)和字符串轉(zhuǎn)換成浮點數(shù):
>>> float(”12″)12.0>>> float(”1.111111″)1.111111
新聞熱點
疑難解答