python dir()内置函数的更好替代

python-ls的Python项目详细描述


Pythonls

更好地替换python内置的dir函数,同时考虑搜索。

有时,当您使用python的交互式shell或ipython进行开发,或者使用jupyter笔记本,甚至使用pdb进行调试时,您会发现自己必须在复杂的对象结构中导航。如果您不完全熟悉手头的类,通常有两种选择:使用正在使用的库和项目的文档,或者戴上资源管理器的帽子,沿着试错路线走下去,使用python的内置dir函数来查看对象可能具有哪些属性和函数,然后使用猜猜你要检查的下一个物体。

一定有更好的办法,对吧?

好吧,现在是的,你有ls来帮助你完成这项任务。如果你对你要找的东西有一个大致的概念,你可以用名字来搜索这个“东西”(在这里祈祷:希望你正在处理的api/库的开发人员对他们的命名约定足够小心)。即使(通常)目标对象可能在对象结构的深层。

ls递归地遍历对象结构,它尝试访问属性以搜索您要查找的名称。如果遇到字典,它还会考虑字典键,最后它会打印出匹配的匹配项并告诉您它们的类型。

>>>ls(ls,'code',depth=3)func_codecodefunc_code.co_codestr200func_code.co_code.decode()builtin_function_or_methodfunc_code.co_code.encode()builtin_function_or_methodfunc_code.co_filename.decode()builtin_function_or_methodfunc_code.co_filename.encode()builtin_function_or_methodfunc_code.co_lnotab.decode()builtin_function_or_methodfunc_code.co_lnotab.encode()builtin_function_or_methodfunc_code.co_name.decode()builtin_function_or_methodfunc_code.co_name.encode()builtin_function_or_methodfunc_globals['xdir'].func_codecodefunc_globals['iter_ls'].func_codecode

安装

pip install python-ls

ls内置

python-ls将在安装步骤时在__builtin__命名空间中注入ls函数。

它通过使用.pth文件来实现这一点,该文件只需执行该注入。

安全性

如果对具有属性、惰性属性或任何其他动态代码的对象运行此命令,请记住ls将尝试使用getattr()获取属性/惰性属性的值。这将导致函数体被执行,所以您可以想象这里已经存在潜在的危险,对吧?

todo:设置默认值unsafe=Falsekwarg,然后仅当unsafe显式设置为True时才访问属性。

关于名字ls

python有一个内置的dir。与gnu/linux世界中的命令行命令等价的是ls。我们已经考虑过调用它xdir,顺便说一句,它是一个类似于dir()的函数,通过向您返回事件列表。

贡献!

请发送您的问题、错误报告,更欢迎您的请求;-)

享受吧!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我想访问同一类的不同函数中的函数变量   创建字段/值哈希映射的java反射   java Velocity工具向后兼容性?   cmd JAVA运行时错误:发生JNI错误   java spring引导示例hateoas不工作   java为什么Android Studio和gradle可以使用不同的类路径进行单元测试?   java Selenium Firefox驱动程序初始化   java如何在jar中重新定位gradle依赖项的包   java为什么我的单线程hello world应用程序使用22个OS线程?   正则表达式替换Java字符串中的特殊字符   在任何派生类的构造函数之后运行方法的java   java从输入字符串中找出日期   带有libGdx(Java)音乐的安卓studio可以在Android模拟器上工作,但不能在桌面上工作   java我在getconnection的参数方面有错误吗?   java使用JFileChooser访问选定文件   java如何将Json解析为另一个活动   java使用Resources for html和rest server   java更新列表,列表内容来自循环中的方法   java如何在GLSL中读取完整范围的32位整数纹理