1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        為什么不建議用 from xxx import *

        共 1192字,需瀏覽 3分鐘

         ·

        2022-08-29 11:00

        導(dǎo)入模塊有兩種常用方法 :import 語(yǔ)句和 from … import 語(yǔ)句。


        1、import語(yǔ)句

        import語(yǔ)句會(huì)導(dǎo)入指定模塊中所有的方法,當(dāng)你需要大量使用該模塊中的不同方法時(shí),這種方式很適合你。

        import 模塊名

        此時(shí),當(dāng)你使用該模塊中的方法,則需要在方法名前面加上模塊名的前綴。

        import math
        math.pow(2,4)  

        2、from…import語(yǔ)句

        如果你只需要使用某個(gè)模塊中的少數(shù)方法,推薦使用from…import語(yǔ)句導(dǎo)入相應(yīng)的模塊。

        from 模塊名 import 方法名

        此時(shí),當(dāng)你調(diào)用模塊中的方法時(shí),就不需要在方法名前面添加模塊名的前綴。

        from math import pow, log
        pow(2,4)
        log(32,2)

        有時(shí)候,當(dāng)你導(dǎo)入的模塊名太長(zhǎng),可為它指定一個(gè)別名。

        別名是模塊的另一個(gè)名稱(chēng),類(lèi)似于外號(hào),語(yǔ)法格式如下所示。

        import pandas as pd

        我們導(dǎo)入了pandas模塊,并指定其別名為pd。


        如果使用from 模塊名 import *,則表示導(dǎo)入該模塊中所有的方法。

        from math import *
        pow(2,4)

        注:使用單下劃線(xiàn)“_”開(kāi)頭的模塊變量或者函數(shù)是受保護(hù)的,在使用 from xxx import * 語(yǔ)句從模塊中導(dǎo)入時(shí)這些變量或者函數(shù)不能被導(dǎo)入。

        但是,這種用法有兩個(gè)坑。第一點(diǎn),正常我們只需看一下文件開(kāi)頭的import語(yǔ)句,就能清楚地知道Python代碼中使用了哪些類(lèi),干凈整潔,如果使用 from xxx import * 語(yǔ)句則會(huì)丟失該優(yōu)點(diǎn)。

        第二個(gè)坑,便是能引發(fā)名稱(chēng)方面的困惑。假如現(xiàn)在Python代碼中要用到兩個(gè)模塊kxpython1kxpython2,而這兩個(gè)模塊都有test()函數(shù),如果正常import語(yǔ)句并不會(huì)出現(xiàn)什么問(wèn)題。

        import kxpython1
        import kxpython2

        kxpython1.test(123456)
        kxpython2.test(123456)

        但是如果使用from xxx import *語(yǔ)句,就芭比Q了。

        在交互式環(huán)境中輸入如下命令:

        from kxpython1 import *
        from kxpython2 import *

        test(123456)

        你猜這時(shí)候,test()函數(shù)用的是哪個(gè)模塊???

        所以,自然會(huì)報(bào)錯(cuò)了。

        這就是我們不建議用 from xxx import * 的原因。雖然我們認(rèn)為,兩個(gè)模塊有同名導(dǎo)出本身也許是個(gè)小概率事件,但能避免還是盡量避免。省得我們最后寫(xiě)Python代碼10分鐘,找BUG花了一整天。


        瀏覽 59
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            夜夜撸天天干 | 快穿老男人猛烈h | 国产a级片免费看 | 天天日视屏| 五月伊人激情 | wwwwwwww黄 | 亚洲日韩中文字幕在线 | 69精品人人人人人人人人人 | 国产xxxxx在线观看 | 五月丁香综合婷婷 |