python 内置模块 增加_模块的内置方法--Python提高班
這期的話題有點(diǎn)簡單, 整理下常見的模塊內(nèi)置方法
剛開始學(xué)Python的時(shí)候, 看到if __name__ == '__main__': main()就不明覺厲了, 一直好奇__name__這貨到底是個(gè)什么東東
實(shí)際上, __name__是Python中模塊的內(nèi)置屬性, 除此之外, 經(jīng)常用到的還有__file__, __doc__, __all__, __package__等等
__name__
__name__是模塊內(nèi)置的一個(gè)屬性, 一般如果模塊是被引用的時(shí)候, 它的值是模塊名, 如果這個(gè)python文件被直接運(yùn)行, 那么它的值是'__main__'
>>> __name__
'__main__'
>>> import os
>>> os.__name__
'os'
所以我們寫一個(gè)腳本的時(shí)候,通過判斷__name__來確定腳本是被引用, 還是被直接運(yùn)行
if __name__ == `__main__`:
main()
__file__
被引用模塊文件的路徑
>>> import os
>>> os.__file__
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'
__doc__
模塊的注釋文檔
class MyClass:
"""這是MyClass的注釋,
調(diào)用下面myClass.__doc__的時(shí)候會(huì)返回這段內(nèi)容"""
def funcA(self):
"""這是funcA的注釋文檔"""
return "hello"
myClass = MyClass()
調(diào)用myClass.__doc__會(huì)返回MyClass的注釋文檔, myClass.funcA.__doc__會(huì)返回funcA的注釋文檔
如果執(zhí)行help(MyClass), 所看到的文檔實(shí)際就是DocStrings收集該類下所有的注釋生成的文檔
__all__
當(dāng)你寫一個(gè)Python的模塊的時(shí)候, 一般在__init__.py中指定__all__來表示當(dāng)這個(gè)模塊被import * from xxx的時(shí)候, 有哪些模塊會(huì)被import進(jìn)來,
當(dāng)然, 我們推薦盡量不使用import *
__package__
__package__主要是為了相對引用而設(shè)置的一個(gè)屬性, 如果所在的文件是一個(gè)package的話, 它和__name__的值是一樣的, 如果是子模塊的話, 它的值就跟父模塊一致
比如 modA/modB/aa.py中__name__的值是modA.modB.aa __package__是modA.modB
modA/modB/__init__.py中__name__和__package__的值都是modA.modB
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的python 内置模块 增加_模块的内置方法--Python提高班的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: string截取某个字符串之前的_pyt
- 下一篇: tcp为什么比udp慢_TCP和UDP那