大家好,给大家分享一下python应用程序设计 易建勋电子版,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
让我们来讨论一下如何配置Python应用程序,特别是那些可能存在于多个环境中的应用程序——开发环境、模拟环境、生产环境等等……
应用程序中使用的工具和框架并不是特别重要,因为我将在下面概述的方法是基于普通Python的快码知识。这种方法的出现是由于使用Django设置会令人懊恼,此外,这种方法还是我将要处理的任何Python应用程序的首选```*``
概述:Python模块和包
我最喜欢的Python特性之一是,构成你应用程序的文件和目录与你在代码中导入和使用它们的方式是一一对应的GPT改写。
例如,给定这个import语句:
我们可以推断出以下目录结构:
许多语言和框架都依赖于这个新概念,包括Clojure和ES6。
在我们的示例中,Python将utils目录视为一个Package。当你在一个目录中放置一个空的__init__.py时,该目录就变成了一个包。
作为一名Python黑客,你可能会遇到这样一个常见的场景,其中有一个utils.py文件最终会变得太大,因此你将它拆分成一个包含许多较小文件的utils//目录。
当遇到这种情况时,我们可以做以下事情:
所以现在我们已经看到了一个Python包是由一个目录中是否存在一个__init__.py文件决定的…但是如果这个文件不是空的呢?
在__init__.py中放入代码
由于它只是一个普通的旧Python文件,你可以把任何你想要的东西放在其中,该文件会在第一次导入包时被执行。
>>>旁注
通常我们不赞成将代码放在__init__.py中,因为它会在导入时带来意想不到的副作用。
你可以自己测试一下。创建一个名为foo的目录,并给它一个空的__init__.py文件。
从相同目录中的Python REPL运行以下代码:
这里没有输出是很好的,这意味着语句成功运行。
现在让我们编辑我们的__init__.py文件以包含以下代码:
sys.exit()通常用于使一个进程以特定的状态退出。
在一个新的REPL中重新运行相同的实验,你将观察到你的Python shell在导入之后会立即退出。在更大的应用程序中,效果会更明显:整个应用程序将退出。
这样,我们了解了基本原理,并了解了如何恶意使用此功能。
也许我们可以用它来做好事?