python類的屬性方法使用詳解

2021-10-06 13:22:10 字數 3073 閱讀 2230

主要內容

1. 例項的屬性和方法

2. 類的屬性和方法

3. 類的靜態屬性和方法

4. 類的私有屬性和方法

5. 運算子過載

使用樣例

import

time

class user:

# 類屬性userid,和例項屬性self.userid是兩個不同範圍的變數

userid =

'wang'

# 構造方法:

# 1.self指代當前類的例項,且位於__init__第乙個引數,其他引數作為構造引數

# 2.self是一種規範,也可用其他合法變數名

def __init__(self, userid, password):

self.userid = userid

# 私有屬性

self.__password = password

# 訪問私有方法

self.__test(

) print(

'訪問類屬性:', self.usertotal)

# 訪問類屬性: -11

# 用過類名修改類屬性

user.usertotal += 1

# 以下建立例項變數usertotal,與類變數同名,區別:

# 1.這是兩個不同範圍的變數

# 2.這裡讀取同名類變數usertotal為self.usertotal初始化,相當於:self.usertotal = user.usertotal + 1

# 3.並不會修改 user.usertotal的值

self.usertotal += 100

# 用類名訪問靜態方法

print(

'構造方法:', user.getdate(

))# 構造方法: 2020-05-27

# 例項的方法

def info(self):

print(self.userid, self.__password)

# 類屬性

usertotal = -11

# 類方法:

# 1.使用修飾器 @ classmethod標識

# 2.在類外通過物件名呼叫,又可通過類名呼叫

# 3.不能訪問例項屬性,可以訪問類屬性

@classmethod

def printusertotal(cls):

print(cls.usertotal)

# 靜態方法:

# 1.用@staticmethod標識

# 2.與類沒有直接關係,相當於普通函式

# 3.沒有self引數,無法訪問類的例項屬性

# 4.沒有cls引數,無法訪問cls的屬性

# 5.只能使用通過類名呼叫

@staticmethod

def getdate(

): print(

'靜態方法:', user.usertotal)

dd= time.localtime(

) dstr = time.strftime(

"%y-%m-%d", dd)

return dstr

# 私有屬性和方法:

# 1.雙下劃線開頭的屬性是私有屬性

# 2.雙下劃線開頭的方法是私有方法

# 3.只能在類內部使用

def __test(self):

print(self.userid, self.__password)

# 把乙個類的例項變成 str,需要實現方法__str__()

def __str__(self):

return

'user類:' + str(self.usertotal) + '\t' + str(self.userid) + '\t' + str(self.__password)

# 運算子過載,用於比較物件

# 過載的還有很多用法:"==":___e__, ">=":__ge__, ">":__gt__, "<=":__le__, "<":__lt__

def __eq__(self, other):

print(

'other:', other.__password)

return self.userid == other.userid and self.__password == other.__password

# return self.userid is other.userid and self.__password is other.__password

def usertest(

): # 例項化乙個類

user = user(

'zhang', '123456'

) user.info(

) user.printusertotal(

) print(

'類變數usertotal:', user.usertotal)

# 類變數usertotal: 1

print(

'例項變數usertotal:', user.usertotal)

# 例項變數usertotal: 101

print(user.getdate(

))# 2020-05-27

print(user.userid)

# zhang

print(user.userid)

# wang

print(user)

# user類:90 zhang 123456

other = user(

'zhang', '1234567'

) print(user == other)

if __name__ ==

'__main__'

: usertest(

)

Python類的定義 方法和屬性使用

類用來描述具有相同的屬性和方法的物件的集合。對於在類中定義的函式,稱為方法。類變數不直接叫做類變數,稱為屬性。1 類的定義 例子 class user pass說明 1 定義了乙個類名為user的類 2 類名一般約定用大寫字母開頭,函式則用小寫字母開頭,以做區分 3 用pass表示為空類,暫時還沒準...

Python類的屬性與方法

1 類的私有屬性和方法 private attrs 兩個下劃線開頭,宣告該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時self.private attrs。private method 兩個下劃線開頭,宣告該方法為私有方法,不能在類地外部呼叫。在類的內部呼叫self.priva...

Python 類的屬性和方法

定義乙個類 class a object 類屬性 例項屬性 類方法 例項方法 靜態方法 類屬性,直接在類中定義的屬性是類屬性 類屬性可以通過類或類的例項訪問到 但是類屬性只能通過類物件來修改,無法通過例項物件修改 count 0 def init self 例項屬性,通過例項物件新增的屬性屬於例項屬...