Python
月虽缺
一个懒人。
展开
-
Python3 覆盖内置同名库----和标准库同名的本地库并不一定优先导入
众所周知:如果模块名称冲突, 当前目录的模块优先于标准库导入. 因为 sys.path 中当前目录在最前面.但实际上这是错误的.案例:自定义了一个模块 site.py在当前目录的另一个 py 文件 导入该模块 ( import site ), 发现导入失败 (但是没有报错), 因为导入的是同名的标准库.原因:实际上, Python3 中有些特殊的库, 即使本地目录中有同名文件, 在导入时也不会被覆盖.比如 site, sys, os, builtins 等.原..原创 2021-04-07 10:26:54 · 2575 阅读 · 1 评论 -
Python3 正确的创建迭代器
网络上好多教程都说实现了 __iter__() 和 __next__() 方法的对象就是迭代器, 但是这种说法过于模糊了, 总会让初学者创建出有问题的迭代器.# 查看列表和列表迭代器,发现它们其实类型并不一样type([]) # listtype(iter([])) # list_iterator# 可以认为 列表对象的 __iter__() 方法 返回了一个 list_iterator 对象.# 而 list_iterator 并不是列表的子类type(iter([])).mro...原创 2021-04-05 14:51:43 · 188 阅读 · 1 评论 -
Python3 函数默认参数不要使用可变类型
最好不要在函数默认参数中使用可变类型。函数定义时会计算形参列表中默认参数的字面值,然后作为对象被保存下来;调用函数时,引用之前保存的对象,而不会重新计算形参中的字面值。语句计算顺序:语句是从左往右计算;等全部算完后,再从左往右依次赋值。(所以第一个示例中三次调用的结果都相同,都是 L)请看示例(代码使用的 JupyterLab 交互式环境):前两个是有BUG的代码,第三个是正确的代码...原创 2021-04-04 15:18:04 · 396 阅读 · 0 评论 -
Python 导入 Wscript.Shell , VBS 能做的, Python 也能做
WScript.Shell是WshShell对象的ProgID,创建WshShell对象可以运行程序、操作注册表、创建快捷方式、访问系统文件夹、管理环境变量。WshShell 对象,提供对本地 Windows 外壳程序的访问。– 百度百科通过 WScript.Shell 可以很方便的管理 Windows 系统WScript.Shell 经常出现在在 VBS 脚本里面, 各种和系统有关的操作都有它的身影.但是, 它也可以出现在 Python 里面, VBS 能做到的, Python 也能做到..原创 2021-01-15 18:30:01 · 858 阅读 · 0 评论