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)


















