sys模块
sys 模块
sys 模块提供了特定系统的配置和操作。
方法
说明
sys.platform
用来构建解释器的操作系统平台
sys.version
构建时的版本信息, 包含完整的版本号和构建日期、编译器、平台信息等
sys.version_info
同样是版本信息, 但不是字符串, 可以直接获得对应类型版本的信息
sys.path[0]
搜索模块的路径列表
sys.modules.get()
已经导入的模块列表
sys.getrefcount()
查看对象的引用计数
sys.getsizeof()
以字节(byte)为单位返回对象大小。这个对象可以是任何类型的对象。 所以内置对象都能返回正确的结果 但不保证对第三方扩展有效,因为和具体实现相关。
作者:江洋林澜
链接:https://www.jianshu.com/p/87a40fbac17f
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
sys.getrefcount
Python 使用引用计数和垃圾回收来完成字段的内存管理, 当一个对象的引用数降为 0, 就会自动标记为回收。在实际开发中, 可能因为 debug 或者调试的需要, 需要了解引用计数, 就可以使用 sys.getrefcount()。
import sys
d = []
print(sys.getrefcount(d))
输出 2
x = d
print(sys.getrefcount(d))
输出 3
del x
print(sys.getrefcount(d))
输出 2
上面的计数比预期多一个, 是因为 getrefcount() 本身也会维护一个临时引用。
sys.getsizeof
了解对象的引用计数不足以发现内存泄漏, 可以使用 sys.getsizeof 辅助, 这样可以确定对象消耗内存的情况。
打印 Python 内置数据结构占用的字节数
for obj in ({}, [], (), ‘string’, 1, 12.3):
print(obj.class.name, sys.getsizeof(obj))
输出:
dict 240
list 64
tuple 48
str 55
int 28
float 24
命令行参数 sys.argv
在命令行下运行一个 Python 程序, 可以通过 sys.argv 获取脚本的名字和参数。有个 argv.py, 代码如下:
import sys
script_name, *args = sys.argv
print(f’Script: {script_name}’)
print(f’Arguments: {args}’)
python argv.py
Script: argv.py
Arguments: []
python argv.py -v
Script: argv.py
Arguments: [‘-v’]
python argv.py -v -v -e ‘foo’
Script: argv.py
Arguments: [‘-v’, ‘-v’, ‘-e’, “‘foo’”]
作者:江洋林澜
链接:https://www.jianshu.com/p/87a40fbac17f
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。









