zoukankan      html  css  js  c++  java
  • 面试题1

    '''第二题,写出下面的输出结果'''
    a=1
    def fun(a):
        a=2
        return a
    a=fun(a)
    print(a)
    '''
    3.
    如何判断一个邮箱是否合法:
    1.使用正则表达式判断
    2.
    '''
    '''
    4.实现一个装饰器,限制该函数被调用的频率,比如十秒一次
    '''
    def run(func):
        def inner(*args,**kwargs):
            import time
            time.sleep(10)
            return func(*args,**kwargs)
        return inner
    @run
    def B(*args):
        print(args)
        print('time')
    
    B('苟利国家生死以')
    
    #5.lanmbda 函数的作用,lanmbda和reduce实现1到100的累加
    '''.lanmbda是一个匿名函数,'''
    # f=lambda x,y,z:x+y+z
    # print(f(1,2,3))
    '''其中reduce函数是python中的一个二元内建函数,
    它可以通过传给reduce中的函数(必须是二元函数)
    依次对数据集中的数据进行操作。'''
    from functools import reduce
    list=[i for i in range(1,101)]
    a=reduce(lambda x,y:x+y,list)
    print(a)
    
    6.
    :type,list,dict,set的特点
    list:查找速度慢,但节省空间,有序性,可变性
    dic:查找速度快,但消耗内存,无序性,可变性
    type:不可变性:不能重新赋值与替换,有序性
    set:唯一性,无序性
    '''
    '''
    
    7.
    staticmethod和classmethod的作用:
    一般来说,要使用某个类的方法,需要先实例化一个对象在调用方法。
    而使用@staticmethod或classmethod,就可以不需要实例化,直接类名.方法名来调用。
    这有利于组织代码,把某些应该属于某个类的函数给放到那个类里,同时有利于代码整洁
    
    区别:
    @staticmethod不需要表示自身对象的self和自身类的cla参数,就跟使用函数一样
    @classmethod也不需要self参数,但第一个参数需要表示自身类的cls参数
    '''
    class A():
        cap='A'
        def foo(self):
            print('B')
        @staticmethod
        def static_cap():
            print('static')
            print(A.cap)
            A().foo()
        @classmethod
        def class_foo(cls):
            print('class')
            print(cls.cap)
            cls().foo()
    
    print(A.cap)
    # A.static_cap()
    # A.class_foo()
    
    '''8.迭代器与生成器的理解'''
    '''
    1.迭代器协议是指:对象提供next()方法,返回迭代迭代中的下一项,
    要么就引起一个异常,终止迭代
    2.可迭代对象是:含有 __iter__ 方法返回一个迭代器,任何可以for循环的都是可迭代对象,
    比如一个二进制文件
    '''
    '''
    生成器:
    Python使用生成器对延迟操作提供支持,所谓延迟操作,
    是指在需要的时候产生结果,而不立即产生,通常是指需要数据的量特别大时,
    而不需要消耗很大的内存
    1.生成器函数:使用常规函数定义,使用yield的返回结果,每个结果中间,
    挂起函数的状态,以便下次继续执行,这个函数即是一个生成器对象
    2.生成器表达式;类似于类表推导式,元祖表达式,返回一个生成器对象,而不是一个元祖
    '''
    
    '''
    
    9.
    单列模式:
    singleton patten 是一种常用的软件设计模式,
    该模式是为了确保某个类只有一个实例存在
    在Python中,可使用多种方法来实现单列模式:
    1.使用模块
    2.使用__new__
    3.使用装饰器(decorator)
    4.使用元类(metaclass)
    5.将类名绑定到实例上
    '''
    class MySingleton():
        def __init__(self):
            print(1)
    MySingleton=MySingleton()
    
    class MySingleton():
        _instance = None
        def __new__(cls, *args, **kwargs):
            if not cls._instance:
                cls._instance = super(MySingleton,cls).__new__(cls,*args,**kwargs)
    
            return cls._instance
    class Myclass(MySingleton):
        x=1
    
    a=Myclass()
    b=Myclass()
    print(a==b)
    print(a is b)
    
    '''
    10.
    web框架是如何维持用户的登录状态的:
    1.把用户信息,存放于session中,再给客户端返回一个coolie信息
    2.通过form表单
    3.通过querystring
    '''
  • 相关阅读:
    js 安全
    js压缩 uglify(2)
    js压缩 uglify
    抢红包算法 java
    手机调试
    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
    字符集编码 定长与变长
    db2 sqlcode
    2015.7.14(大盘结束红色,中色连坐4T)
    2015.7.10(全部涨停!想逢高出货,但是担心周一创新高)
  • 原文地址:https://www.cnblogs.com/ldq1996/p/8027708.html
Copyright © 2011-2022 走看看