天天看点

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是类名。

继续阅读