<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 中下劃線的 6 個(gè)作用

          共 1907字,需瀏覽 4分鐘

           ·

          2021-12-25 08:09

          初學(xué)者看到 Python 中的下劃線 _ 時(shí)可能會(huì)有些懵圈,不知道這個(gè)到底是干什么用的,今天就來盤點(diǎn)一下 Python 中的下劃線有哪些用處。以后看到下劃線時(shí)就可以對號入座了。

          1、用在 Python 解釋器,表示上一次的執(zhí)行結(jié)果

          即使不把 Python 用于編程,也可以把它用作智能計(jì)算器,下劃線保存上次的計(jì)算結(jié)果,在計(jì)算時(shí)相當(dāng)方便:

          >>>?4?+?3
          7
          >>>?_
          7
          >>>?_?+?2
          9
          >>>?a?=?10
          >>>?_
          9

          2、代碼中一個(gè)獨(dú)立的下劃線,表示這個(gè)變量不重要

          一個(gè)獨(dú)立的下劃線,它也是一個(gè)變量名,只不過它比較特殊,當(dāng)你使用下劃線作為變量名時(shí),就代表你告訴大家,這個(gè)變量不重要,僅僅占個(gè)位置,可以忽略,后面不會(huì)再使用它。

          當(dāng)然了,這只是一種約定俗成,你要是不遵守也是可以的,畢竟在后面你還可以通過下劃線來獲取這個(gè)變量的值。

          for?i,?_?in?[(1,?2),?(3,?4)]:
          ????print(i)

          上面的代碼表示我們只需要列表內(nèi)部元組的第一個(gè),第二個(gè)其實(shí)賦值給了下劃線,雖然后面你可以通過下滑線來取到值,但是強(qiáng)烈建議你不要這么做,這違反了約定。

          3、類的內(nèi)部,雙下劃線作為變量名或函數(shù)名的開頭,表示私有

          私有變量或函數(shù),只能在類的內(nèi)部來使用,不可在外部訪問或更改,比如,在 module_b.py 中有一個(gè)類 A,類 A 有一個(gè)雙下劃線開頭的變量名:


          class?A:
          ????__private_var?=?1000

          ????def?__init__(self)?->?None:
          ????????self.__private_var2?=?2000
          ????????self.var3?=?3000

          當(dāng)我們在另一個(gè)文件中引用 A 時(shí),就無法訪問到私有變量:


          import?module_b

          if?__name__?==?'__main__':
          ????a?=?module_b.A()
          ????print(a.__private_var)

          這里會(huì)報(bào)錯(cuò)

          當(dāng)然了,如果你一定要訪問,也是可以的,只需在私有變量前加個(gè)_類名,比如上面的代碼中改為 print(a._A__private_var) 就可以正確打印 1000。

          不能直接訪問 __private_var 是因?yàn)?Python 解釋器對外把__private_var 變量改成了_A__private_var

          print(dir(a))
          #['_A__private_var',?'_A__private_var2',?'__class__',?'__delattr__',?'__dict__',?'__dir__',?'__doc__',?'__eq__',?'__format__',?'__ge__',?'__getattribute__',?'__gt__',?'__hash__',?'__init__',?'__init_subclass__',?'__le__',?'__lt__',?'__module__',?'__ne__',?'__new__',?'__reduce__',?'__reduce_ex__',?'__repr__',?'__setattr__',?'__sizeof__',?'__str__',?'__subclasshook__',?'__weakref__',?'var3']

          有些時(shí)候,你會(huì)看到以一個(gè)下劃線開頭的實(shí)例變量名,比如 _name,這樣的實(shí)例變量外部是可以訪問的,但是,按照約定俗成的規(guī)定,當(dāng)你看到這樣的變量時(shí),意思就是,“雖然我可以被訪問,但是,請把我視為私有變量,不要隨意訪問”。

          Python 本身沒有任何機(jī)制阻止你干壞事,一切全靠自覺

          4、雙下劃線開頭和結(jié)尾的方法,是魔術(shù)方法

          比如常見的 '__init__', '__dict__', '__dir__', '__doc__', '__eq__' 等等。

          具體可以閱讀如何寫出令人驚嘆的Python類

          5、作為變量名中間的一部分

          相比駝峰命名,這叫做蛇形命名,比如 user_name。

          6、作為數(shù)字中間的一部分,更易讀

          >>>?10_000_000
          10000000
          >>>?1_280_500_000?==?1280500000
          True

          最后的話

          本文梳理了下劃線在 Python 中的 6 類用法,如果有收獲還請點(diǎn)贊,在看,關(guān)注,感謝支持。

          瀏覽 32
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码人妻精品一区二区在线 | 中文字幕一区视频 | 久久精品夜色噜噜亚洲A∨ | 五月丁香激情四射 | 啊啊啊啊啊啊网站 |