1.1 模塊內(nèi)置屬性name
描述
python模塊都有個內(nèi)置屬性 name 。
NO | 模塊使用 | 描述 |
---|---|---|
1 | 頂層文件執(zhí)行 | name為’ main ’場景:作為頂層文件執(zhí)行,比如 python module.py。 |
2 | 作為模塊導(dǎo)入 | name為模塊名場景:作為模塊導(dǎo)入,比如 import module |
文件內(nèi)容
E**: \\documents\\F盤 * nameattr *.**py
import os
def testabspath():
print("run:{}".format(os.path.abspath(__file__)))
print("__name__:{}".format(__name__))
if __name__ == '__main__':
testabspath()
示例
# 打開cmd 執(zhí)行下面示例
# 頂層文件執(zhí)行,__name__ 為 __main__
E:\\documents\\F盤>python nameattr.py
run:E:\\documents\\F盤\\nameattr.py
__name__:__main__
# 作為模塊導(dǎo)入,__name__ 為 模塊名稱
E:\\documents\\F盤>python
>>> import nameattr
>>> nameattr.testabspath()
run:E:\\documents\\F盤\\nameattr.py
__name__:nameattr
>>> exit()
1.2 使用name單元測試
用法
if __name__ == '__main__':
執(zhí)行語句
描述
python模塊作為頂層文件執(zhí)行時,name為’ main ’,會執(zhí)行if內(nèi)的語句。如果是作為模塊導(dǎo)入,則不會執(zhí)行if內(nèi)的語句。可以通過if內(nèi)的執(zhí)行語句對模塊文件的功能進(jìn)行測試。
文件內(nèi)容
E**: \\documents\\F盤 * nameattr *.**py
import os
def testabspath():
print("run:{}".format(os.path.abspath(__file__)))
print("__name__:{}".format(__name__))
def maxmin(testf,*args):
res = args[0]
for arg in args[1:]:
if testf(arg,res):
res = arg
return res
def minf(x,y):return xdef maxf(x,y):return x>y
if __name__ == '__main__':
nums=[5,6,3,2,1,8]
testabspath()
print("{}最小值為:{}".format(nums,maxmin(minf,*nums)))
print("{}最大值為:{}".format(nums,maxmin(maxf,*nums)))
示例
# 打開cmd 執(zhí)行下面示例
E:\\documents\\F盤>python nameattr.py
run:E:\\documents\\F盤\\nameattr.py
# 頂層文件執(zhí)行,__name__ 為 __main__,自動調(diào)用if內(nèi)語句
__name__:__main__
[5, 6, 3, 2, 1, 8]最小值為:1
[5, 6, 3, 2, 1, 8]最大值為:8
1.3 命令行參數(shù)argv
描述
python模塊作為頂層文件執(zhí)行時,可以向運行腳本傳遞參數(shù),并且通過sys.arg列表獲取參數(shù)。
文件內(nèi)容
E:\\documents\\F盤\\argvtest.py
import sys,os
print("run:{}".format(os.path.abspath(__file__)))
print("__name__:{}".format(__name__))
def testargva():
for i,x in enumerate(sys.argv):
print("第{}個參數(shù)為:{}".format(i,x))
testargva()
示例
# 打開cmd 執(zhí)行下面示例
E:\\documents\\F盤>python argvtest.py 'a' 'b' 1 2 3
run:E:\\documents\\F盤\\argvtest.py
__name__:__main__
第0個參數(shù)為:argvtest.py
第1個參數(shù)為:'a'
第2個參數(shù)為:'b'
第3個參數(shù)為:1
第4個參數(shù)為:2
第5個參數(shù)為:3
-
Str
+關(guān)注
關(guān)注
0文章
21瀏覽量
34901 -
python
+關(guān)注
關(guān)注
56文章
4799瀏覽量
84810 -
init
+關(guān)注
關(guān)注
0文章
16瀏覽量
3434
發(fā)布評論請先 登錄
相關(guān)推薦
評論