简述三范式,GIL,浅拷贝与深拷贝

三范式

1.一个数据一个字段
2. 只要有主键的
3. 减少重复

GIL

叫什么:全局解释器锁cpython
有什么用:单核的情况下实现多任务NB
怎么解决:
    换解释器锁jpython
    进程加协程(个人建议)
    线程用其他语言实现,python调用
4.png

深拷贝与浅拷贝

深拷贝

递归拷贝每一层的数据
1.png

浅拷贝

拷贝第一层的数据
2.png

跟引用的区别

引用:多个变量指向同一个内存地址
拷贝:产生一个新地址(不可变类型不会产生,int,字符串,元组)

python基本上如果提供了copy方法都是浅copy

私有化

_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问
__xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)
__xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__ , __ 不要自己发明这样的名字
xx_:单后置下划线,用于避免与Python关键词的冲突

模块搜索路径

sys.path

模块更新

from imp import reload

导入两种模块方式的区别

import  **** 这个可以当做是引用
from **** import *** 这个可以当做深拷贝
3.png

你可能感兴趣的:(简述三范式,GIL,浅拷贝与深拷贝)