一篇基础了解python(非常实用)

Q: Python垃圾回收机制/内存管理机制?
A:总体来说,在Python中,主要通过引用计数进行垃圾回收;通过 “标记-清除” 解决容器对象可能产生的循环引用问题;通过 “分代回收” 以空间换时间的方法提高垃圾回收效率。Python垃圾回收机制

Q:__new__和__init__的区别?
A:__new__作为构造器,起创建一个类实例的作用。而__init__作为初始化器,起初始化一个已被创建的实例的作用。__new__和__init__的区别

Q:Python字典dict实现原理?
A:散列表是一个在时间和空间上做出权衡的经典例子。如果没有空间(内存)的限制,那么可以直接将键作为数组的索引。那么所有的查找时间复杂度为 O(1);如果没有时间的限制,那么可以直接用数组,这样只需要很少的内存。字典dict实现原理

Q:实现一个单例模式?
A:

class Singleton(object):
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, 'instance'):
            cls.instance = super().__new__(cls, *args, **kwargs)
        return cls.instance


if __name__ == '__main__':
    s = Singleton()
    print(id(s))
    s2 = Singleton()
    print(id(s2))

Q:实现一个装饰器?
A:

def log(func):
    def wrapper(*args, **kwargs):
        print('log')
        return func(*args, **kwargs)

    return wapper


def logging(v):
    def log(func):
        def wrapper(*args, **kwargs):
            print('log', v)
            return func(*args, **kwargs)

        return wapper
    return log


@logging('vvv')
def run(k):
    print('run:%s' % (k))


run('1')

Q:并发和并行?
A:并发和并行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章