python简单介绍如何导入与使用模块,Python导入模块的三种方法_1

  python简单介绍如何导入与使用模块,Python导入模块的三种方法

  

  浅谈python模块的导入操作

  1.什么是模块

  Python中有个概念叫模块。所谓模块,就是把一个代码量很大的程序分成若干个有组织的、独立但又相互作用的代码段。这些自包含的有组织的代码段是模块。

  2.模块的特点

  python中的模块具有以下特征:

  (1)在1)python中,一切都是对象,模块也是对象。

  (2)模块在物理上表示为以。py。

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

  (4)模块的文件名是模块名加上扩展名。巴拉圭

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

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

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

  3.python程序的组成

  python程序通常包括顶级程序文件和其他模块文件:

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

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

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

  4.模块的执行环境

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

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

  5.模块的导入

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

  相关:《Python视频教程》

  在python解释器下,输入:

  help(modules )命令可以列出系统上安装的所有模块。

  帮助(“模块”)

  PleasewaitamomentwhileIgatheralistofallavailablemodules.

  CDROMatexitimportlibselect

  DLFCNattrincrementalselectors

  创新

  ;inspectsetuptools

  IPythonautomatioshelve

  TYPESautoreloadipaddressshlex

  __future__base64ipython_genutilsshutil

  _astbdbitertoolssignal

  _bisectbinasciijedisimplegeneric

  _bootlocalebinhexjsonsite

  _bz2bisectkeywordsix

  _codecsbuiltinslib2to3smtpd

  _codecs_cnbz2linecachesmtplib

  _codecs_hkcProfilelocalesndhdr

  _codecs_iso2022calendarloggingsocket

  _codecs_jpcgilzmasocketserver

  _codecs_krcgitbmacpathspwd

  _codecs_twchunkmacurl2pathsqlite3

  _collectionsclassmailboxsre_compile

  _collections_abccmathmailcapsre_constants

  _compat_picklecmdmarshalsre_parse

  _compressioncodemathssl

  _cryptcodecsmimetypesstat

  _csvcodeopmmapstatistics

  _ctypescollectionsmodulefinderstoremagic

  _cursescolorsysmultiprocessingstring

  _curses_panelcompileallnetrcstringprep

  _datetimeconcurrentnisstruct

  _dbmconfigparsernntplibsubprocess

  _decimalconstantlyntpathsunau

  _dummy_threadcontextlibnturl2pathsymbol

  _elementtreecopynumberssympyprinting

  _functoolscopyregnumpysymtable

  _gdbmcryptopcodesys

  _hashlibcsvoperatorsysconfig

  _heapqctypesoptparsesyslog

  _impcursesostabnanny

  _iocythonmagicossaudiodevtarfile

  _jsondatetimepackagingtelnetlib

  _localedbmparsertempfile

  _lsprofdecimalpathlibtermios

  _lzmadecoratorpdbtest

  _markupbasedifflibpexpecttests

  _multibytecodecdispickletextwrap

  _multiprocessingdistutilspicklesharethis

  _opcodedjangopickletoolsthreading

  _operatordoctestpiptime

  _osx_supportdummy_threadingpipestimeit

  _pickleeasy_installpkg_resourcestoken

  _posixsubprocesselse_exppkgutiltokenize

  _pydecimalemailplatformtornado

  _pyioencodingsplistlibtrace

  _randomensurepippoplibtraceback

  _signalenumposixtracemalloc

  _sitebuiltinserrnoposixpathtraitlets

  _socketexampleprojpprinttty

  _sqlite3faulthandlerprofiletwisted

  _srefcntlprompt_toolkittypes

  _sslfilecmppstatstyping

  _statfileinputpsutilunicodedata

  _stringfnmatchptyunittest

  _strptimeformatterptyprocessurllib

  _structfractionspwduu

  _symtableftplibpy_compileuuid

  _sysconfigdatafunctoolspyclbrvenv

  _testmultiphasegcpydocvirtualenv

  _threadgenericpathpydoc_datavirtualenv_support

  _threading_localgetoptpyexpatwarnings

  _tracemallocgetpasspygmentswave

  _warningsgettextpyparsingwcwidth

  _weakrefglobpytzweakref

  _weakrefsetgrpqueuewebbrowser

  abcgzipquopriwsgiref

  aifchashlibrandomxdrlib

  antigravityheapqrexml

  appdirshmacreadlinexmlrpc

  argparsehtmlreprlibxxlimited

  arrayhttpresourcexxsubtype

  astidlelibrlcompleterzipapp

  asynchatimaplibrmagiczipfile

  asyncioimghdrrunpyzipimport

  asyncoreimpschedzlib使用import语句可以导入一个或多个指定的模块,但是建议一个import语句只导入一个模块

  语法:

  

importmodule1[,module2[,....moduleN]]
如果被导入的模块名字太长时,可以为被导入的模块设定一个别名,但是要注意所起的别名不要与系统或者是自己设定的变量重名

  语法:

  

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

  语法:

  

frommoduleimportname1[,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目录:

  

>>>importsys

  >>>sys.path

3.标准链接库目录,就是python安装目录下的lib文件夹这个目录

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

  这四个组件组合起来即为sys.path所包含的路径,而python会选择在搜索路径中的第一个符合导入文件名的文件。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: