python的导入,深拷贝和浅拷贝

本文详细介绍Python中路径导入的方法,包括使用sys.path进行路径管理,如何重新加载模块,避免循环导入子模块导致的死锁,以及==和is操作符的区别。同时,深入探讨了深拷贝与浅拷贝的概念,解释了两者在内存拷贝上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、引入路径,可以用path加载进来,还可以通过path.append加载路径
例如:
In [1]: import sys

In [2]: sys.path
Out[2]:
[’’,
‘/usr/bin’,
‘/usr/lib/python35.zip’,
‘/usr/lib/python3.5’,
‘/usr/lib/python3.5/plat-x86_64-linux-gnu’,
‘/usr/lib/python3.5/lib-dynload’,
‘/usr/local/lib/python3.5/dist-packages’,
‘/usr/lib/python3/dist-packages’,
‘/usr/lib/python3/dist-packages/IPython/extensions’,
‘/home/python/.ipython’]

In [3]: sys.path.append("/home")

In [4]: sys.path
Out[4]:
[’’,
‘/usr/bin’,
‘/usr/lib/python35.zip’,
‘/usr/lib/python3.5’,
‘/usr/lib/python3.5/plat-x86_64-linux-gnu’,
‘/usr/lib/python3.5/lib-dynload’,
‘/usr/local/lib/python3.5/dist-packages’,
‘/usr/lib/python3/dist-packages’,
‘/usr/lib/python3/dist-packages/IPython/extensions’,
‘/home/python/.ipython’,
‘/home’]

二、修改导入的内容

需要通过
from imp imoprt *
reload(test)
重新加载

三、循环导入子模块
循环导入子模块可能导致程序死锁,解决的办法在程序设计的时候子模块之间不相互调用,由主模块同意调用

四、== 判断两个值是不是相等
is 判断指向同一块内存
id() 显示内存号

五、深拷贝和浅拷贝
深、浅指的是拷贝的内容的多少,深,拷贝的内容比较多,浅,拷贝的内容比较少
浅拷贝直接用=赋值
深拷贝用copy模块里面的copy.deepcpoy()
浅拷贝修改一处地方其他地方都拷贝
深拷贝修改一下其他地方不改变

在copy.deepcpoy()的时候,会把所有的内存进行拷贝一次
在copy.cpoy()的时候,只是把部分的进行拷贝,原本引用的没有进行拷贝
元组是不可变类型,数据是可变类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值