包package 的導入與被導入:
參考一下:
https://blog.csdn.net/guowujun321/article/details/80764468
1.文件目錄:
|
|-- ?A/
| | __init__.py
| |A1.py
|
| B/
| |__init__.py
| |B1.py
|
| 測試A.py
問題1:在平行目錄下的 測試A.py? 想要導入A 包時,需要在 測試A.py? 中寫:
?
from A
import *
然后可以直接調用A包中的方法或者類(不需要寫包名)
或者
import
A
A.ac()
a1=A.A_Class(
"
asd
")
?
問題2:A包的__init__文件應該怎樣寫,例如要導如A1.py文件中的Class:
import
os,sys
Path=os.path.dirname(os.path.abspath(
__file__
))
sys.path.append(Path)
from A1
import *
#
這一句是不可以用import A1這條語句的,因為在別的地方導入該A包的時候,會出錯。(會出現未知命名錯誤),
至于前面的三行代碼是為了把A1所在目錄導入path中,,讓系統可以找到。
問題3:當B包中的B1.py文件需要導入A包時,該怎么導入:
import
os,sys
Path=os.path.dirname(os.path.dirname(os.path.abspath(
__file__
)))
print
(Path) sys.path.append(Path)
from A
import *
a1=A_Class(
"
張三
"
) 我創建的A包中有一個類A_Class.當需要導入A包時,需要把A包的父目錄添加到path中讓系統可以找到。
★
①采用from...import方式
from 包 絕對路徑 ?from 模塊py文件
from package.subpackage1 import foo1
from 模塊 import 變量
from 包 import 子包
②采用import方式
import package.subpackage1
import 模塊
總結:import和from 2個關鍵字后面 都可以是模塊或者包
本測試代碼鏈接:https://github.com/Anxc520/test1.git
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
