0
如果我要在一個模塊中使用一個類,我將如何在它的實例中使其成爲「頂級」?帶類和進口的模塊
結構:
/package
__init__.py
/subPackage
__init__.py
module.py
subModule.py
/theScript.py
python theScript.py
手創樂團來源:/package/subPackage/module.py的
import package.subPackage.module
package.subPackage.module.method()
來源:
class module:
def method(self): pass
moduleInstance = module()
我猜一世是問我怎麼會讓它這樣我就不用做package.subPackage.module.moduleInstance.method()
,並可能package.subPackage.module.method()
我知道我可以只刪除類和實例,但我更喜歡類,因爲它可以更容易地後,如果有人繼承希望不需要直接修改我們的源代碼,但如果我最終必須使用模塊中的方法而不是類/方法。
有沒有辦法做像PHP這樣的變量變量?例如,在PHP中,我會做$ $$ var = $ _instance - > $$ var() –
@Jordon:雖然Python在全局範圍內可以實現這一點,但它不被使用,而Python並不意味着被使用辦法。我建議手動維護這個列表,就像Python核心維護者在這個例子中做的那樣,或者首先使用一個實例而不是一個模塊(例如,將一個實例添加到'__init __。py'中,並使用實例代替' module'.當然你不能在這種情況下'import package.sub_package.instance',因爲'instance'不是一個模塊。) –
啊沒關係,那是有道理的。謝謝。 –