一篇基礎瞭解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:併發和並行

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