理解模块/包的问题

所以我是 Python 和 Flask 的新手,我目前正在 Flask/Python 中使用一些 CRUD 语句

我想知道我是否完全理解正在发生的事情,但我对以下主题有点不安全:模块、包导入

我想用 Flask 连接到我的 SQLite 数据库。这样做,我必须做一些进口:

import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

导入完成后的第一件事是设置一个基目录(=basedir):

basedir = os.path.abspath(os.path.dirname(__file__))

关于这些步骤,我有一些问题:

题:

import osfrom flask import Flask

第一次导入(“import os”)是否意味着我只使用名为“os”的模块?它是一个独立的 .py - “文件”,包括一个类、一些属性和方法,对吗?

第二次导入(“from flask import Flask”)是否意味着我正在使用包“flask”并导入模块“Flask”?如果,例如,会有另一个像“render_template”这样的导入,这是否意味着我正在使用这个模块还是它是来自模块“Flask”的方法?

第二个问题:

basedir = os.path.abspath(os.path.dirname(__file__))

我想了解这段代码。首先,我声明了一个名为 basedir 的变量。然后我打算将该变量的值设置为当前 .py-script 的绝对路径。现在到单个步骤:

os => 表示我正在使用已经导入的模块“os”,对吗?path => 表示我正在使用该模块的属性?abspath => 表示我正在使用名为“abspath(value)”的“os”模块中的方法?如果我得到其他事情的答案,接下来的事情就很清楚了:”

(os.path.dirname(__filename__))

__filename__ => 这是一个内置的 Python 属性,对吧?


qq_笑_17
浏览 188回答 2
2回答

MMMHUHU

Does the first import ("import os") mean that I'm only using a Module called "os"?正如声明所暗示的那样,您正在导入OS 模块,因此您可以os在 Python 脚本中使用该模块中的函数。所以,现在您可以os.function()在脚本中进行语句了。默认情况下,OS 模块与 Python 一起安装。这是关于 os 模块的信息。Does the second import ("from flask import Flask") mean that I'm using the package "flask" and import the module "Flask"? If, e.g., there would be another import like "render_template", does that mean I'm using this module or is it a method from the module "Flask"?这可能会令人困惑,因为函数名称和导入语句具有相同的名称。您只是从 Flask 模块中导入了函数Flask,而不是 Flask 模块中存在的所有函数。这可以出于多种原因完成。On 是为了简化调用函数。另一个可能是节省系统资源,因为您只是os => means that I'm using the already imported module "os", right? path => means that I'm using an attribute from that module? abspath => means that I'm using a method within the "os" module called "abspath(value)"?确切地说,请阅读文档以获取模块开发人员的解释。Filename这是Python 中文件名用法的说明。

郎朗坤

我要回答第一个问题。基本上,当您只进行导入时,python 会导入整个文件及其所有模块和函数。就像import math你可以使用math.ceil和其他功能一样。然而,当你说from math import add你只能得到一个特定的模块时,ceil就像ceil(2.7). 有关更多详细信息,请阅读此处
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python