知行编程网知行编程网  2022-12-25 10:30 知行编程网 隐藏边栏  4 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python模块导入的相关介绍的相关知识,包括simulink各个模块介绍,以及导入模块使用的关键字这些编程知识,希望对大家有参考作用。



Python模块导入介绍



浅谈python模块的导入操作


1.什么是模块

Python 中有一个概念叫做模块。所谓模块,就是把一个代码量很大的程序分成多个有组织的代码片段,这些代码片段彼此独立,但又可以相互交互。这些自包含的有组织的代码片段是模块。


2.模块的特点

python中的模块有以下特点:

(1)python中,一切皆对象,模块也是对象

(2)模块在物理形式上表现为以.py结尾的代码文件。

(3) 一个模块也可以看做一个文件,一个文件也可以作为一个独立的模块被其他程序导入调用。

(4)模块的文件名就是模块的名字加上扩展名.py

(5)每个模块都有自己的名称空间

Python允许“导入”其他模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统的功能。导入模块后,在模块顶层定义的所有变量在导入时都成为导入模块的属性。

python 中的每个模块都是一个空名称。一个模块的命名空间可以通过dict或者dir(M)获取,模块属性可以通过点(.)操作符获取,格式为M.attr,每个模块是一个独立的作用域(局部变量是全局变量).


3.python程序的组成

一个python程序通常由一个顶层程序文件和其他模块文件组成:

顶层文件:包含了程序的主要控制流程。

模块文件:为顶层文件或其他模块提供各种功能组件。

当模块第一次导入(或重载)时,python会立即执行模块文件的顶层程序代码(即不在函数中的代码),位于函数体中的代码不会一直执行到函数被调用。


4.模块的执行环境

模块是导入的,但是模块内部也可以导入和使用其他模块,这些模块可以用python或其他编程语言编写。

模块可以包含变量、函数和类来完成工作,而函数和类可以包含变量和其他元素。


5.模块的导入

导入模块时只能使用模块名,不能使用.py后缀的模块文件名。

在python解释器下,输入:

   help("modules")

命令可以列出系统上已经安装的所有的模块

>>> help("modules")
Please wait a moment while I gather a list of all available modules...
CDROM               atexit              importlib           select
DLFCN               attr                incremental         selectors
IN                  audioop             inspect             setuptools
IPython             automat             io                  shelve
TYPES               autoreload          ipaddress           shlex
__future__          base64              ipython_genutils    shutil
_ast                bdb                 itertools           signal
_bisect             binascii            jedi                simplegeneric
_bootlocale         binhex              json                site
_bz2                bisect              keyword             six
_codecs             builtins            lib2to3             smtpd
_codecs_cn          bz2                 linecache           smtplib
_codecs_hk          cProfile            locale              sndhdr
_codecs_iso2022     calendar            logging             socket
_codecs_jp          cgi                 lzma                socketserver
_codecs_kr          cgitb               macpath             spwd
_codecs_tw          chunk               macurl2path         sqlite3
_collections        class               mailbox             sre_compile
_collections_abc    cmath               mailcap             sre_constants
_compat_pickle      cmd                 marshal             sre_parse
_compression        code                math                ssl
_crypt              codecs              mimetypes           stat
_csv                codeop              mmap                statistics
_ctypes             collections         modulefinder        storemagic
_curses             colorsys            multiprocessing     string
_curses_panel       compileall          netrc               stringprep
_datetime           concurrent          nis                 struct
_dbm                configparser        nntplib             subprocess
_decimal            constantly          ntpath              sunau
_dummy_thread       contextlib          nturl2path          symbol
_elementtree        copy                numbers             sympyprinting
_functools          copyreg             numpy               symtable
_gdbm               crypt               opcode              sys
_hashlib            csv                 operator            sysconfig
_heapq              ctypes              optparse            syslog
_imp                curses              os                  tabnanny
_io                 cythonmagic         ossaudiodev         tarfile
_json               datetime            packaging           telnetlib
_locale             dbm                 parser              tempfile
_lsprof             decimal             pathlib             termios
_lzma               decorator           pdb                 test
_markupbase         difflib             pexpect             tests
_multibytecodec     dis                 pickle              textwrap
_multiprocessing    distutils           pickleshare         this
_opcode             django              pickletools         threading
_operator           doctest             pip                 time
_osx_support        dummy_threading     pipes               timeit
_pickle             easy_install        pkg_resources       token
_posixsubprocess    else_exp            pkgutil             tokenize
_pydecimal          email               platform            tornado
_pyio               encodings           plistlib            trace
_random             ensurepip           poplib              traceback
_signal             enum                posix               tracemalloc
_sitebuiltins       errno               posixpath           traitlets
_socket             exampleproj         pprint              tty
_sqlite3            faulthandler        profile             twisted
_sre                fcntl               prompt_toolkit      types
_ssl                filecmp             pstats              typing
_stat               fileinput           psutil              unicodedata
_string             fnmatch             pty                 unittest
_strptime           formatter           ptyprocess          urllib
_struct             fractions           pwd                 uu
_symtable           ftplib              py_compile          uuid
_sysconfigdata      functools           pyclbr              venv
_testmultiphase     gc                  pydoc               virtualenv
_thread             genericpath         pydoc_data          virtualenv_support
_threading_local    getopt              pyexpat             warnings
_tracemalloc        getpass             pygments            wave
_warnings           gettext             pyparsing           wcwidth
_weakref            glob                pytz                weakref
_weakrefset         grp                 queue               webbrowser
abc                 gzip                quopri              wsgiref
aifc                hashlib             random              xdrlib
antigravity         heapq               re                  xml
appdirs             hmac                readline            xmlrpc
argparse            html                reprlib             xxlimited
array               http                resource            xxsubtype
ast                 idlelib             rlcompleter         zipapp
asynchat            imaplib             rmagic              zipfile
asyncio             imghdr              runpy               zipimport
asyncore            imp                 sched               zlib

使用import语句导入一个或多个指定模块,但建议一条import语句只导入一个模块

语法:

import module1[,module2[,....moduleN]]

如果导入的模块名称过长,可以为导入的模块设置别名,但注意不要使用与系统或自己设置的变量名相同的别名

语法:

import module as module_alias

使用 from-import 语句只将指定模块的部分属性导入当前命名空间

语法:

from module import name1[,name2[,....nameN]]


import语句和from-import语句的不同点:

1.import和from-import都是赋值语句,

import和from是可执行的语句,和def类似,所以可以嵌套在if测试中,出现在def等中,python在执行这些语句时会对其进行解析,这样模块的所有属性都只在import中语句只能在执行后使用

2.import和from都是隐性赋值语句

import将整个模块对象赋值给一个变量名

from 将一个或多个变量名分配给导入该模块的模块中的同名对象


6.import的工作机制

import语句导入指定的模块时会执行三个步骤:

1.在指定路径下搜索模块文件,找到模块文件。

2、指定的模块在导入时会编译成字节码,即编译成.pyc文件。

3. 依赖模块代码中的定义来创建定义对象,模块文件中的所有语句都会从头到尾依次执行,这一步对变量名的任何赋值操作都会生成获得文件的模块属性。

但请注意:以上步骤只会在第一次导入模块时执行,后续的导入操作只是将加载的模块对象提取到内存中。你可以使用 reload() 命令重新加载指定的模块。


7.模块搜索

python解释器在import模块时查找模块的顺序:

1.程序的主目录,

2.python的PATH目录(如果设置了此变量)

可以使用以下命令查看python的PATH目录:

  >>> import sys
        >>> sys.path

3.标准链接库目录为python安装目录下lib文件夹所在目录

4.任何.pth文件的内容(如果存在.pth文件)

这四个组成部分的组合就是sys.path中包含的路径,python会选择搜索路径中第一个与导入文件名匹配的文件。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享