sys:使用或维护解释器
版本信息
Python版本
>>> sys.version
'3.10.3 (tags/v3.10.3:a342a49, Mar 16 2022, 13:07:40) [MSC v.1929 64 bit (AMD64)]'
系统版本
>>> sys.platform
'win32'
>>>
解释器版本
>>> sys.hexversion
50988016
>>>
最大整数
>>> sys.maxsize
9223372036854775807
编码格式
>>> sys.getdefaultencoding()
'utf-8'
解释器信息与控制
递归的限制
>>> sys.getrecursionlimit()
1000
>>>
递归深度的设置
sys.setrecursionlimit()
注意:修改递归深度未必能够使得你的递归程序一路顺风.
举例:
import sys
print(sys.getrecursionlimit())
num = 0
def recursion_fun():
global num
num += 1
recursion_fun()
recursion_fun()
print(num)
更改递归深度至3000
已经超出限制,程序无法正常运行
线程切换间隔
线程切换的间隔时间指切换两个线程之间所需的时间。
较短的切换间隔会导致操作系统频繁地进行切换,增加额外的开销和延迟
较长的切换间隔会降低程序的并发性能和响应时间。
>>> sys.getswitchinterval()
0.005
>>> sys.setswitchinterval()
例如:
import sys
import time
import threading
def fun():
num = 1
for i in range(5):
for i in range(1000000):
num += 1
for i in range(1,6):
sys.setswitchinterval(0.05*i)
t1 = threading.Thread(target=fun,name="FIREST")
t2 = threading.Thread(target=fun,name="SECOND")
start = time.time()
t1.start()
t2.start()
t1.join()
t2.join()
end = time.time()
Time = end - start
print("USED time is ",Time," when switchinterval is ",0.05*i)
安装路径信息
prefix直译为:前缀
sys.prefix
'C:\\Users\\...Python310'
程序交互
引用计数
Python通过管理对象的引用计数来决定对象与内存的关系
sys.getrefcount()
举例
对象内存
sys.getsizeof
程序终止
sys.exit()
import sys
if __name__ == "__main__":
a = 0
for i in range(100):
a += 1
if a>50:
sys.exit()
输入输出
import sys
sys.stdout.write("stdout\n")
a = sys.stdin.readline()
print(a)