簡體   English   中英

從python模塊導入時,它是要導入的類還是函數?

[英]When importing from a python module is it a class that gets imported or a function?

在Code Academy的python培訓中,有一節關於導入日期時間的課程。 語法為:

datetime導入datetime

導入后,我可以編寫now = datetime.now()並評估now.hournow.minutenow.second 我在datetime模塊中看到在datetime類中定義了.now()、. hour,.minute和.second。 這導致我將導入聲明解釋為:

datetime模塊導入datetime類

因此,似乎可以訪問datetime類是使我可以訪問.now()、. hour,.minute和.second定義的原因。

但后來我發現,我也能夠評估now.month,now.daynow.year。 即使.month .day和.year 不在 datetime類中。 相反,他們在另一個名為date的類中。

當我似乎只導入了datetime類時,如何從date類訪問定義?

如果查看datetime.py的源代碼,您會注意到以下行(3.4.2中的第1290行):

class datetime(date):

這是datetime類的類定義,它是從先前定義的date類繼承的。 因此,只要沒有被datetime覆蓋,datetime對象( datetime類的實例)就可以訪問date類中定義的屬性和方法。

您可以在此處了解有關類的更多信息,尤其是在此處可以了解有關繼承的信息

暫無
暫無

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

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