天天看點

Python3 類+self+ __init__ + 類庫調用

Python3小白日記

python3 類詳解 + self注意點 + __init__()構造函數 + 類庫調用

系統:Python 3.6.5 + windows7 + 自帶time/datetime庫

首先寫一個時間函數類,有2個方法

#python 3.6.5
#coding = UTF-8
import time
import datetime

class GetTime(object):
    #get_timeStamp不加self
    def get_timeStamp():
        #擷取時間,并轉化格式
        nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        #将時間按照格式轉化成元祖
        timeArray = time.strptime(nowtime,'%Y-%m-%d %H:%M:%S')

        #将元祖轉化成時間戳,因為是浮點型,是以是1234.0格式,轉化整形消除0
        timestamp = time.mktime(timeArray)
        timeStamp = int(timestamp)
        return timeStamp

    #get_crrentTime加self
    def get_crrentTime(self):
        nowtime = datetime.datetime.now().strftime('%Y%m%d%H%M')
        return nowtime
           

接下來我們調用下。

from lib.getTime import GetTime

#注意,這個調用GetTime沒有帶()
timeStp = GetTime.get_timeStamp()
print(timeStp)
#1528388419

#注意,這個GetTime()是帶了()的
timecurrent = GetTime().get_crrentTime()
print(timecurrent)
#201806080020
           

分析結論:

1、定義類的時候,class GetTime():  #object可以省略,這個object是類的基類,說白了就是定義class類的函數。

2、類下面第一個函數

def __init__(self,A,B):
    self.a = A
    self.b = B
#這個是類的構造函數,也叫初始化函數。
#self.a表示class類有一個a是屬性,也就是公用變量
#(self,A,B) 這個AB是執行個體化類的時候需要2參數
           

3、類下面的其他方法

get_timeStamp() 裡面沒有(self),可是可以的。在調用的時候,GetTime.get_timeStamp()去調用,

因為self和()在調用的時候都會預設是一個參數。

如果定義方法加了(self),那麼調用的時候一定要用 類().方法() 。

如果定義方法沒加(self),那麼調用的時候直接用 類.方法() 。

4、類的調用

python沒有命名空間,是以調用自定義類挺麻煩。

先說個簡單的,pyCharm,隻要在同級目錄下,建立封包件,自帶一個__init__.py檔案。這個引用就很簡單。

from 包.類名 import 類。

lib是我的包目錄,getTime.py是py檔案名,GetTime是類名。

繼續閱讀