亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python 模塊

系統 1767 0

?

要先導入模塊,才能調用用模塊中定義的函數(才會有該模塊的代碼提示)。

            
              import
            
              模塊   
            
              #
            
            
              導入一個模塊
            
            
              import
            
              模塊1,模塊2,....    
            
              #
            
            
              同時導入多個模塊
            
            
              from
            
              模塊  
            
              import
            
              部分   
            
              #
            
            
              導入一部分
            
            
              from
            
             模塊  
            
              import
            
              部分1,部分2,部分3....     
            
              #
            
            
              導入一個模塊的多個部分
            
            
              from
            
              模塊  
            
              import
            
              *    
            
              #
            
            
              導入整個模塊
            
          

以上的? 模塊 ?均可換為? 模塊.子模塊 ?,表示只導入子模塊|從子模塊中導入。

?

導入之后就可以通過? ? 模塊名.方法名() ?? 調用模塊中的函數了。

?

不管導入一個相同模塊多少次,只會在第一次時導入。

比如寫十行? import math ?,只有第一個? import math ?會導入math模塊,避免了重復導入模塊。

?

?

?

dir()函數

            
              import
            
            
               math

            
            
              print
            
            
              (dir(math))  


            
            
              """
            
            
              
dir(模塊名)    #列出該模塊所有的成員變量、方法。需要先導入對應的模塊。以字符串列表的形式返回。dir()是python的內置函數。

            
            
              """
            
          

?

?

?

一個python文件(.py)就是一個python模塊,一個模塊中可以定義多個類,定義多個方法,可以有可執行代碼。

新建一個python文件:module1.py

            
              print
            
            (
            
              "
            
            
              module start
            
            
              "
            
            )  
            
              #
            
            
              可執行代碼
            
            
              class
            
             Test:  
            
              #
            
            
              定義類
            
            
              def
            
            
               out(self):
        
            
            
              print
            
            (
            
              "
            
            
              test class
            
            
              "
            
            
              )


            
            
              print
            
            (
            
              "
            
            
              module1 running
            
            
              "
            
            )  
            
              #
            
            
              可執行代碼
            
            
              def
            
             module1_test():  
            
              #
            
            
              定義方法
            
            
              print
            
            (
            
              "
            
            
              test function
            
            
              "
            
            
              )


            
            
              print
            
            (
            
              "
            
            
              module1 over
            
            
              "
            
            )  
            
              #
            
            
              可執行代碼
            
          

一個模塊有2個默認屬性:__main__,__name__

?

__main__

__main__即這個模塊中所有的可執行代碼。

導入一個模塊時,會自動執行這個模塊的__main__部分:

新建python文件module2.py

            
              import
            
             module1
          

執行module2.py,結果如下:

            
              module start
module1 running
module1 over
            
          

導入一個模塊時,會自動執行這個模塊的__main__部分(所有可執行代碼)。

所以我們常常在__main__中做一些這個模塊的初始化操作,習慣把這些代碼放在文件開頭。

?

?

__name__

如果是在模塊的類中、函數中,__name__表示當前執行的python文件的文件名(不帶后綴.py)。

如果是在模塊的可執行代碼(__main__)中,__name__表示當前的模塊(.py文件)是主動執行的,還是被調用的。如果__name__的值是"__main__則表示當前模塊(.py文件)是主動執行的。

?

module1.py如下:

            
              if
            
            
              __name__
            
            ==
            
              "
            
            
              __main__
            
            
              "
            
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              主動調用
            
            
              "
            
            
              )

            
            
              else
            
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              被動調用
            
            
              "
            
            
              )


            
            
              class
            
             Test:  
            
              #
            
            
              定義類
            
            
              def
            
            
               out(self):
        
            
            
              print
            
            (
            
              "
            
            
              test class
            
            
              "
            
            
              )


            
            
              def
            
             module1_test():  
            
              #
            
            
              定義方法
            
            
              print
            
            (
            
              __name__
            
            )  
            
              #
            
            
              在模塊的類、方法中使用
            
            
              print
            
            (
            
              "
            
            
              test function
            
            
              "
            
            )
          

?

module2.py如下:

            
              import
            
            
               module1
module1.module1_test()
            
          

?

執行module1.py:

            主動調用
          

?

執行module2.py:

            
              被動調用 
module1
test function
            
          

?

有時候我們需要在主動執行時做一種操作,在被調用時做不同的操作,就可以這樣來實現:

            
              if
            
            
              __name__
            
            ==
            
              "
            
            
              __main__
            
            
              "
            
            
              :
    
            
            
              #
            
            
              主動調用時做的操作
            
            
              else
            
            
              :
    
            
            
              #
            
            
              被動調用時做的操作
            
          

?

?

?

?

包相當于一個命名空間,各個包中的標識符是獨立的,互不干擾。

一個包中可以有多個模塊(.py文件),也可以有多個子包。

?

一個包(包括子包),都要有__init__.py文件,這是這個包的索引文件(目錄文件),相當于書的索引、目錄,標識這本書(這個模塊)有哪些章節(python文件|模塊)。

__init__.py文件有一個屬性__all__,即這個包的索引、目錄,我們? import ?包 ?或者? from ?包? import * ?時(包可以看做一個大模塊),python解釋器會找到這個包的__init__.py中的__all__屬性,根據其屬性值導入這個包中的模塊。

?

比如包school中有3個py文件(模塊):student.py、teacher.py、leader.py。

__init__.py文件:

            
              __all__
            
            =[
            
              "
            
            
              student
            
            
              "
            
            ,
            
              "
            
            
              teacher
            
            
              "
            
            ]   
            
              #
            
            
              字符串列表,py文件名(不帶后綴)
            
          

我們? import school ?或? from school import * ?導入整個包時,只會導入student、teacher這2個py文件,不會全部導入。

?

一般__init__.py文件是空的,這時默認__all__的值是包下所有py文件(除去__init__.py)的字符串列表,所以會全部導入包下的py文件(模塊)。

?

習慣把包中的入口文件(我們要執行的py文件,程序入口,相當于c/c++、java中的main()函數),命名為__main__.py

?

?

?

import的具體用法

1、不使用包

  • 導入整個模塊(py文件):? import py文件名 ? 或? from py文件名 import * ?
  • 導入py文件中的某個類:? from py文件名 import 類名 ?

調用函數:? py文件名.函數名(參數表) ?

?

?

2、使用包,不使用子模塊

  • 導入整個模塊(py文件):? import 包名.py文件名? 或? from 包名.py文件名?import?*?
  • 導入py文件中的某個類:? from 包名.py文件名?import?類名?

調用函數:? 包名.py文件名.函數名(參數表) ?

使用子包時,以? 包名.子包 ?作為包名即可。

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久草久热 | 97精品国产综合久久 | 久久不射视频 | 成年黄页免费大全网站 | 成人精品综合免费视频 | 精品九九在线 | 国产亚洲精品久久久久久小说 | 久久精品免费观看久久 | 女性一级全黄生活片免费看 | 精品少妇一区二区三区视频 | 成人久久18免费网站游戏 | 乱色美www女麻豆 | 久久这里只有精品99 | 免费的一级毛片 | 九热这里只有精品 | jazzjazz国产精品久久 | 人人爱天天做夜夜爽2020麻豆 | 亚洲欧美自拍一区 | 久久免费视频2 | 大色佬视频在线观看 | 欧美精品在线一区二区三区 | 一本伊在人香蕉线观新在线 | 天天碰天天操 | 日本一区二区三区免费高清在线 | 69热在线观看| 老妇激情毛片免费中国 | 天天玩夜夜操 | 国产高清一区二区 | 一区二区日韩欧美 | 99爱在线观看精品视频 | 91久久老司机福利精品网 | 最新国产在线 | 久久精品国产欧美日韩亚洲 | 香蕉成人国产精品免费看网站 | 国产区高清 | 欧美在线视频免费看 | 亚洲精品一区二区三区在线播放 | 国产性一交一乱一伦一色一情 | 国产精品高清一区二区三区 | www国产永久免费视频看看 | 在线成人免费观看国产精品 |