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