更新時(shí)間:2021年06月16日13時(shí)49分 來源:傳智教育 瀏覽次數(shù):
Python模塊的開頭通常會定義一個(gè)__all__屬性,該屬性實(shí)際上是一個(gè)元組,該元組中包含的元素決定了在使用from…import 語句導(dǎo)入模塊內(nèi)容時(shí)通配符所包含的內(nèi)容。 如果__all__中只包含模塊的部分內(nèi)容,那么from…import *語句只會將__all__中包含的部分內(nèi)容導(dǎo)入程序。
假設(shè)當(dāng)前有一個(gè)自定義模塊calc.py,該模塊中包含計(jì)算兩個(gè)數(shù)的四則運(yùn)算函數(shù),具體代碼如下:
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if (b):
return a / b
else:
print("error")
在calc模塊中設(shè)置__all__屬性為["add", "subtract"],此時(shí)其他Python文件導(dǎo)入calc模塊后,只能使用calc模塊中的add()與subtract()函數(shù),示例代碼如下:
__all__ = ["add", "subtract"]
通過“from ...import *”方式導(dǎo)入calc模塊,然后使用
from calc import *
print(add(2, 3))
print(subtract(2, 3))
運(yùn)行程序,結(jié)果如下所示。
5
-1
下面嘗試使用calc模塊的multipty()和divide()函數(shù),具體代碼如下.
print(multipty(2, 3))
print(divide(2, 3))
運(yùn)行程序,出現(xiàn)如下所示的異常信息:
NameError: name 'multiply' is not defined
北京校區(qū)