Python面试题目

  1:Python如何实现单例模式?

  Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模式:

  1.

  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()

  2. 使用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函数。否则,你还是定义函数才对,毕竟函数没有这么多限制。

  

本文已影响6827
上一篇:linux面试相关问题分享 下一篇:韩国留学签证面试问题有哪些?

相关文章推荐

|||||