修改python内置函数和库

dpython的Python项目详细描述


深色Python

travis-badge

修补python内置函数和库!

创造你自己的Python!

用你做梦都没想到的Python做危险的事情!

它的功能

  • 修补程序内置函数

$ dpython config beautify.py

# beautify.pyfrompprintimportpprintprint=pprint

只要把$ dpython作为python命令行使用一辈子,每个print都会很漂亮。

  • 修补任何包,是否内置

$ dpython config troll_packages/random

random
└── __init__.py
#__init__.pydefrandint(a,b):returna

现在通过ssh连接到某个生产服务器。$ sudo alias python3=dpython看着世界燃烧。

用例

the forbidden fruit结合。您可以做任何事情,包括:

  1. 根据您的喜好定制您的python。你是不是一个数据科学家,发现用python香草列表做任何事情都是不可能的?没问题!使用numpy数组功能扩展内置列表!

  2. 在不进行任何重构的情况下修补大量的python代码

  3. 为其他包创建pythonpatch包

如何使用

pip install dpython

默认情况下,pip创建命令行快捷方式$ dpython。如果它不起作用(你用的是愚蠢的窗口或其他东西),你总是可以使用> python -m dpython

dpython本身的工作方式与python命令行完全相同。

例如:

$ dpython test.py运行test.py

$ dpython打开交互式外壳

$ dpython -m my_module作为python模块运行文件夹my_module

dpython只有一个与python不同的保留子命令:'config'。您可以提供以下说明:

$ dpython config [something.py|folder]。注册单个.py文件或包含python包的文件夹。

  • 对于py文件。提供的文件将在以后的$ dpython调用之前有效执行。你可以称之为启动脚本。
  • 对于包,其他代码中的导入将使用提供的包,而不是具有重复名称的包。
  • 您可以注册任意数量的软件包。但只有一个启动脚本。

$ dpython config inspect-script打印保存的启动脚本

$ dpython config clear-script重置保存的启动脚本

$ dpython config inspect-package打印注册包

# example output
patch packages:
random
numpy
argparse

$ dpython config clear-package清除已注册的包,不会删除实际文件。

# example output
random removed
numpy removed
argparse removed

$ dpython -h|--help打印帮助

更多示例

  • 示例1

    # leEtH4ck3r.pyoldprint=printdefprint(*args,**kwargs):oldprint('Pwned  by Dark Python!!!')oldprint(*args,**kwargs)

    $ dpython register leEtH4ck3r.py

  • 例2

    # ilovetqdm.pyfromtqdmimporttrangerange=trange

    $ dpython register ilovetqdm.py

我愚蠢的幻想(TODOS)

  • 编写一个名为gwrap的包,该包在内部使用dpython扩展内置的argparse

    $ gwrap any_cmd_utility.py

    只要脚本使用argparse,gwrap就会创建一个gui,用复选框替换布尔参数。替换参数选项的下拉菜单。悬停参数帮助的工具提示。并存储自动完成的命令历史记录。

  • 在我的同事电脑上安装dpython,把最常用的功能比如range()list()搞砸。别名python=dpython只是为了好玩。

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

推荐PyPI第三方库


热门话题
尝试运行JFLAP。戴软呢帽的罐子23。Java正在抛出异常   无引用的java数组布尔复制   hibernate如何在java SE应用程序中使用JPA EntityManager   java如何使用ORMLite在SQLite中持久化JavaFX属性?   java无法将项目部署到GAE   java:谷歌地图维基百科层   java Resultset(getter/setter类)对象在第二次执行时未删除旧值   s中的java struts2:选择列表>请求的列表键“”作为集合/数组/映射/枚举/迭代器类型   java如何在Karaf 4.0.5中获得BaseDao中的entityManager?   java VSCode未从控制台读取西里尔文   java字体。createFromAsset()返回字体的空指针异常   java错误:将Android Studio从0.6.1更新到0.8.9后,没有合适的构造函数