簡體   English   中英

從Python包導入方法

[英]Importing methods from a Python package

我從文件導入所有方法時遇到問題,因此可以將其用作包。 我有以下幾點:

myapp.py
mypackage/
mypackage/__init__.py
mypackage/mypackage.py

mypackage.py內部,我具有method1()method2() myapp.py內部,我想這樣做:

import mypackage
mypackage.method1()

但是,這不起作用。 相反,我需要執行mypackage.mypackage.method1() ,但不確定如何解決該問題。 我發現的唯一方法是刪除__init__.py並將mypackage.py重命名為__init__.py ,這似乎不正確。

我需要在init文件中放入什么來導入所有方法,這樣我不必總是兩次鍵入包名?

在您的示例中,您有一個mypackage程序包(帶有__init__.py的目錄)和該程序包中的mypackage模塊。 當然,您剛剛發布了一個草人示例,但是如果您將模塊命名為與包相同的名稱,則可能會導致導入錯誤。 將非包裝的東西稱為“包裝”肯定會造成混淆!

要將方法從mypackage.py放入mypackage ,可以在mypackage/__init__.py進行相對於軟件包的導入:

from .mypackage import method1, method2

...要么

from .mypackage import *

您應將mypackage.py重命名為其他名稱的原因是,小錯誤(例如缺少該點)會導致導入錯誤的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM