前言
什么?你要去找工作?先别急着找工作,先把下面的python面试题先给看了吧,不然你就只是去面试而不是找工作。话说不打没准备的仗,下面这些基本的面试题都不会你怎么可能找到工作呢?还是先把下面的东西
1、Python如何实现单例模式?
Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模式:
class Singleton(type): def __init__(cls, name, bases, dict): super(Singleton, cls).__init__(name, bases, dict) cls.instance = None def __call__(cls, *args, **kw): if cls.instance is None: cls.instance = super(Singleton, cls).__call__(*args, **kw) return cls.instance class MyClass(object): __metaclass__ = Singleton print MyClass() print MyClass()
使用decorator来实现单例模式
def singleton(cls): instances = {} def getinstance(): if cls not in instances: instances[cls] = cls() return instances[cls] return getinstance @singleton class 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.1111