2024年Go最新Python中sys模块_sys(3),2024年最新金三银四Golang面试的一些感受

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

sys._displayhook_
sys._excepthook_
这些对象包含的原始值displayhook,并excepthook 在程序的开始。它们被保存,以便displayhook和 excepthook情况下可以恢复他们碰巧得到破碎的对象替换。

sys.exc_info()
此函数返回三个值的元组,这些值提供有关当前正在处理的异常的信息。返回的信息特定于当前线程和当前堆栈帧。如果当前堆栈帧未处理异常,则从调用堆栈帧或其调用者获取信息,依此类推,直到找到正在处理异常的堆栈帧。这里,“处理异常”被定义为“正在执行或已执行except子句。”对于任何堆栈帧,只能访问有关最近处理的异常的信息。

如果堆栈中的任何位置都没有处理异常,None则返回包含三个值的元组 。否则,返回的值是。它们的含义是:type获取正在处理的异常的异常类型(类对象); value获取异常参数(其 关联值或第二个参数,如果异常类型是类对象,则始终为类实例); traceback 获取一个回溯对象(参见参考手册),该对象在最初发生异常的位置封装调用堆栈。(type, value, traceback)raise

如果exc_clear()被调用,则此函数将返回三个None值,直到当前线程中引发另一个异常或执行堆栈返回到正在处理另一个异常的帧。

警告: 将回溯返回值分配给处理异常的函数中的局部变量将导致循环引用。这将阻止同一函数中的局部变量或回溯引用的任何内容被垃圾回收。由于大多数函数不需要访问回溯,因此最好的解决方案是使用类似的方法来仅提取异常类型和值。如果确实需要回溯,请确保在使用后删除它(最好使用 … 语句)或调用本身不处理异常的函数。exctype, value = sys.exc_info()[:2]tryfinallyexc_info()


注意 从Python 2.2开始,当启用垃圾收集并且它们变得无法访问时,这些周期会自动回收,但是避免创建周期仍然更有效。

sys.exc_clear()
此函数清除与当前线程中发生的当前或最后一个异常相关的所有信息。调用此函数后, exc_info()将返回三个None值,直到在当前线程中引发另一个异常,或者执行堆栈返回到正在处理另一个异常的帧。

仅在少数几个不明显的情况下才需要此功能。这些包括记录有关最后或当前异常的信息的日志记录和错误处理系统。此函数也可用于尝试释放资源并触发对象最终化,但不保证将释放哪些对象(如果有)。

版本2.3中的新功能。

sys.exc_type
sys.exc_value
sys.exc_traceback

从版本1.5开始不推荐使用:exc_info()改为使用。

由于它们是全局变量,因此它们并不特定于当前线程,因此在多线程程序中它们的使用并不安全。当没有处理异常时,exc_type设置为None,其他两个未定义。

sys.exec_prefix
一个字符串,给出了特定于站点的目录前缀,其中安装了与平台相关的Python文件; 默认情况下,这也是’/usr/local’。这可以在构建时使用configure脚本的–exec-prefix参数 进行设置。具体来说,所有配置文件(例如 头文件)都安装在目录中,并且安装了 共享库模块,其中XY 是Python的版本号。pyconfig.hexec_prefix/lib/pythonX.Y/configexec_prefix/lib/pythonX.Y/lib-dynload2.7

sys.executable
一个字符串,给出Python解释器的可执行二进制文件的绝对路径,在有意义的系统上。如果Python无法检索其可执行文件的真实路径,sys.executable则将为空字符串或None。

sys.exit([ arg ] )
退出Python。这是通过引发SystemExit 异常来实现的,因此遵循finally语句的子句所指定的清理操作try ,并且可以拦截外层的退出尝试。

可选参数arg可以是一个整数,给出退出状态(默认为零)或其他类型的对象。如果它是整数,则零被认为是“成功终止”,并且任何非零值被贝壳等视为“异常终止”。大多数系统要求它在0-127范围内,否则会产生不确定的结果。有些系统具有为特定退出代码指定特定含义的约定,但这些通常是不发达的; Unix程序通常使用2表示命令行语法错误,1表示所有其他类型的错误。如果传递了另一种类型的对象,None则相当于传递零,并且打印任何其他对象stderr并导致退出代码为1.特别是sys.exit(“some error message”) 发生错误时退出程序的快速方法。

由于exit()最终“only”引发了一个异常,它只会在从主线程调用时退出进程,并且异常不会被截获。

sys.exitfunc
该值实际上不是由模块定义的,但可以由用户(或程序)设置,以指定程序退出时的清理操作。设置时,它应该是无参数功能。解释器退出时将调用此函数。这样只能安装一个功能; 要允许在终止时调用的多个函数,请使用该atexit模块。

注意 当程序被信号杀死,检测到Python致命内部错误或被调用时,不会调用exit函数os._exit()。


从版本2.4开始不推荐使用:atexit改为使用。

sys.flags
struct sequence 标志公开命令行标志的状态。属性是只读的。

属性
debug-d
py3k_warning-3
division_warning-Q
division_new -Qnew
inspect-i
interactive-i
optimize-O 要么 -OO
dont_write_bytecode-B
no_user_site-s
no_site-S
ignore_environment-E
tabcheck-t 要么 -tt
verbose-v
unicode-U
bytes_warning-b
hash_randomization-R

版本2.6中的新功能。

在新版本2.7.3:该hash_randomization属性。

sys.float_info
structseq保存有关float类型的信息。它包含有关精度和内部表示的低级信息。这些值对应于float.h’C’编程语言的标准头文件中定义的各种浮点常量; 有关详细信息,请参见1999 ISO / IEC C标准[C99]第5.2.4.2.2节“浮动类型的特性”。

属性float.h宏说明
epsilonDBL_EPSILON1和最小值之间的差值大于1,可表示为浮点数
digDBL_DIG可以在浮点数中忠实表示的最大小数位数; 见下文
mant_digDBL_MANT_DIGfloat precision:float radix 的有效位数中的基数
maxDBL_MAX最大可表示的有限浮点数
max_expDBL_MAX_EXP最大整数e,这radix**(e-1)是一个可表示的有限浮点数
max_10_expDBL_MAX_10_EXP最大整数e,使得10**e它在可表示的有限浮点范围内
minDBL_MIN最小正标准化浮点数
min_expDBL_MIN_EXP最小整数e,这radix**(e-1)是一个标准化的浮点数
min_10_expDBL_MIN_10_EXP最小整数e,这10**e是一个标准化的浮点数
radixFLT_RADIX指数表示的基数
roundsFLT_ROUNDS整数常量,表示用于算术运算的舍入模式。这反映了解释器启动时系统FLT_ROUNDS宏的值。有关可能

该属性sys.float_info.dig需要进一步解释。如果 s任何字符串表示具有最多sys.float_info.dig有效数字的十进制 数字,则转换s为float并再次返回将恢复表示相同十进制值的字符串:

>>> import sys
>>> sys.float_info.dig
15
>>> s = '3.14159265358979'    # decimal string with 15 significant digits
>>> format(float(s), '.15g')  # convert to float and back -> same value
'3.14159265358979'

但对于具有多位sys.float_info.dig有效数字的字符串,并非总是如此:

>>> s = '9876543211234567'    # 16 significant digits is too many!
>>> format(float(s), '.16g')  # conversion changes value
'9876543211234568'

版本2.6中的新功能。

sys.float_repr_style
一个字符串,指示repr()函数对浮点数的行为方式。如果字符串具有值,’short’则对于有限浮点数x,repr(x)旨在生成具有该属性的短字符串。这是Python 2.7及更高版本中的常见行为。否则,其值 和行为方式与2.7之前的Python版本相同。float(repr(x)) == xfloat_repr_style’legacy’repr(x)

版本2.7中的新功能。

sys.getcheckinterval()
返回口译员的“检查间隔”; 看setcheckinterval()。

版本2.3中的新功能。

sys.getdefaultencoding()
返回Unicode实现使用的当前默认字符串编码的名称。

2.0版中的新功能。

sys.getdlopenflags()
返回用于dlopen()调用的标志的当前值。标志常量在dl和DLFCN模块中定义。可用性:Unix。

版本2.2中的新功能。

sys.getfilesystemencoding()
返回用于将Unicode文件名转换为系统文件名的None编码名称,或者是否使用系统默认编码。结果值取决于操作系统:

在Mac OS X上,编码是’utf-8’。
在Unix上,根据nl_langinfo(CODESET)的结果,或者None如果nl_langinfo(CODESET) 失败,编码是用户的首选项。
在Windows NT +上,文件名本身是Unicode,因此不执行任何转换。getfilesystemencoding()仍然返回’mbcs’,因为这是应用程序在明确要将Unicode字符串转换为用作文件名时等效的字节字符串时应使用的编码。
在Windows 9x上,编码是’mbcs’。
版本2.3中的新功能。

sys.getrefcount(对象
返回对象的引用计数。返回的计数通常比您预期的高一个,因为它包含(临时)引用作为参数getrefcount()。

sys.getrecursionlimit()
返回递归限制的当前值,即Python解释器堆栈的最大深度。此限制可防止无限递归导致C堆栈溢出并导致Python崩溃。它可以设置 setrecursionlimit()。

sys.getsizeof(对象[,默认] )
以字节为单位返回对象的大小。对象可以是任何类型的对象。所有内置对象都将返回正确的结果,但这不一定适用于第三方扩展,因为它是特定于实现的。

如果给定,则如果对象未提供检索大小的方法,则将返回default。否则TypeError将被提出。

getsizeof()sizeof如果对象由垃圾收集器管理,则调用该对象的方法并添加额外的垃圾收集器开销。

版本2.6中的新功能。

sys._getframe([ 深度] )
从调用堆栈返回一个框架对象。如果给出了可选的整数深度,则返回堆栈顶部下方多次调用的帧对象。如果它比调用堆栈更深,ValueError则引发。深度的默认值为零,返回调用堆栈顶部的帧。

**CPython实现细节:**此函数仅用于内部和专用目的。并不保证在Python的所有实现中都存在。

sys.getprofile()
获取设置的探查器功能setprofile()。

版本2.6中的新功能。

sys.gettrace()
获取设置的跟踪功能settrace()。

CPython实现细节:该gettrace()函数仅用于实现调试器,分析器,覆盖工具等。它的行为是实现平台的一部分,而不是语言定义的一部分,因此可能并非在所有Python实现中都可用。

版本2.6中的新功能。

sys.getwindowsversion()
返回一个描述当前正在运行的Windows版本的命名元组。命名元素是major,minor, build,platform,service_pack,service_pack_minor, service_pack_major,suite_mask和product_type。 service_pack包含一个字符串,而所有其他值都是整数。组件也可以通过名称访问,因此 sys.getwindowsversion()[0]相当于 sys.getwindowsversion().major。为了与先前版本兼容,只能通过索引检索前5个元素。

平台可能是以下值之一:

不变平台
0 (VER_PLATFORM_WIN32s)Windows 3.1上的Win32s
1 (VER_PLATFORM_WIN32_WINDOWS)Windows 95/98 / ME
2 (VER_PLATFORM_WIN32_NT)Windows NT / 2000 / XP / x64
3 (VER_PLATFORM_WIN32_CE)Windows CE

product_type可能是以下值之一:

不变含义
1 (VER_NT_WORKSTATION)该系统是一个工作站。
2 (VER_NT_DOMAIN_CONTROLLER)该系统是域控制器。
3 (VER_NT_SERVER)系统是服务器,但不是域控制器。

这个函数包装了Win32 GetVersionEx()函数; OSVERSIONINFOEX()有关这些字段的详细信息,请参阅Microsoft文档。

可用性:Windows。

版本2.3中的新功能。

在2.7版中更改:更改为命名元组并添加了service_pack_minor, service_pack_major,suite_mask和product_type。

sys.hexversion
版本号编码为单个整数。每个版本都保证会增加,包括对非生产版本的适当支持。例如,要测试Python解释器至少是1.5.2版,请使用:

if sys.hexversion >= 0x010502F0:
    # use some advanced feature
    ...
else:
    # use an alternative implementation or warn the user
    ...

这被调用,hexversion因为它只是在将其作为将其传递给内置hex()函数的结果时才真正看起来有意义。该 version_info值可以用于对人工友好的相同信息的编码。

这hexversion是一个32位数字,具有以下布局:

比特(大端序)含义
1-8PY_MAJOR_VERSION (2在 2.1.0a3)
9-16PY_MINOR_VERSION (1在 2.1.0a3)
17-24PY_MICRO_VERSION (0在 2.1.0a3)
25-28PY_RELEASE_LEVEL (0xA用于alpha, 0xB用于beta,0xC用于候选发布版和0xF最终版)
29-32PY_RELEASE_SERIAL (在3中 2.1.0a3,零为最终释放)

因此2.1.0a3是hexversion 0x020100a3。

1.5.2版中的新功能。

sys.long_info
一个结构序列,包含有关Python内部整数表示的信息。属性是只读的。

属性说明
bits_per_digit每个数字中保持的位数。Python整数存储在base的内部 2**long_info.bits_per_digit
sizeof_digit用于表示数字的C类型的字节大小

版本2.7中的新功能。

sys.last_type
sys.last_value
sys.last_traceback
这三个变量并不总是定义的; 它们在未处理异常时设置,并且解释器打印错误消息和堆栈回溯。它们的用途是允许交互式用户导入调试器模块并进行事后调试,而无需重新执行导致错误的命令。(典型用法是进入事后调试器; 有关详细信息,请参阅pdb一章- Python调试器。)import pdb; pdb.pm()

变量的含义与exc_info()上面的返回值相同 。(由于只有一个交互式线程,因此线程安全性不是这些变量的关注点,不像exc_type 等等)

sys.maxint
Python常规整数类型支持的最大正整数。这至少是2 ** 31-1。最大的负整数是-maxint-1- 使用2的补码二进制算法产生的不对称性。

sys.maxsize
平台的Py_ssize_t类型支持的最大正整数,因此最大大小的列表,字符串,dicts和许多其他容器都可以。

sys.maxunicode
一个整数,表示Unicode字符支持的最大代码点。其值取决于配置选项,该选项指定Unicode字符是存储为UCS-2还是UCS-4。

sys.meta_path
调用其方法的finder对象列表,find_module()以查看其中一个对象是否可以找到要导入的模块。find_module()至少使用要导入的模块的绝对名称调用该方法。如果要导入的模块包含在包中,则父包的path属性作为第二个参数传入。None如果找不到模块,则返回该方法,否则返回加载器。

sys.meta_path在任何隐式默认查找器或之前搜索 sys.path。

看到 PEP 302用于原始规范。

sys.modules
这是一个将模块名称映射到已加载的模块的字典。这可以被操纵以强制重新加载模块和其他技巧。注意,从本字典移除模块是不与调用 reload()相应的模块对象上。

sys.path
一个字符串列表,指定模块的搜索路径。从环境变量初始化PYTHONPATH,加上依赖于安装的默认值。

在程序启动时初始化时,此列表的第一项path[0]是包含用于调用Python解释器的脚本的目录。如果脚本目录不可用(例如,如果以交互方式调用解释器或者从标准输入读取脚本), path[0]则是空字符串,它指示Python首先搜索当前目录中的模块。请注意,脚本目录是在插入 条目之前插入的PYTHONPATH。

程序可以自行修改此列表。

在版本2.3中更改:不再忽略Unicode字符串。

sys.path_hooks
一个callables列表,它采用path参数来尝试为路径创建 finder。如果可以创建一个查找程序,它将由callable返回,否则加注ImportError。

最初指定于 PEP 302。

sys.path_importer_cache
充当查找程序对象缓存的字典。键是已传递到的路径,sys.path_hooks值是找到的查找程序。如果路径是有效的文件系统路径但未找到显式查找器,sys.path_hooks则None存储表示应使用隐式默认查找器。如果路径不是现有路径,则imp.NullImporter设置。

最初指定于 PEP 302。

sys.platform
例如,该字符串包含一个平台标识符,可用于附加特定于平台的组件sys.path。

对于大多数Unix系统,这是由附加返回的版本的第一部分返回的小写OS名称,例如,在构建Python时。除非您要测试特定的系统版本,否则建议使用以下习惯用法:uname -suname -r’sunos5’

if sys.platform.startswith('freebsd'):
    # FreeBSD-specific code here...
elif sys.platform.startswith('linux'):
    # Linux-specific code here...

版本2.7.3中更改:由于大量代码检查,并且Linux 2.x和3.x之间没有必要的更改,因此即使在Linux 3.x上也始终设置为。在Python 3.3及更高版本中,该值将始终设置为,因此建议始终使用上面提到的习语。sys.platform == ‘linux2’sys.platform’linux2”linux’startswith

对于其他系统,值为:

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

.x上也始终设置为。在Python 3.3及更高版本中,该值将始终设置为,因此建议始终使用上面提到的习语。sys.platform == ‘linux2’sys.platform’linux2”linux’startswith

对于其他系统,值为:

[外链图片转存中…(img-LbFeiLam-1715637836164)]
[外链图片转存中…(img-bKzQdV1Z-1715637836164)]
[外链图片转存中…(img-zD8XVrjQ-1715637836165)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 30
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值