1. 程式人生 > >Python基礎學習:類語法規則

Python基礎學習:類語法規則

 【類】

一、定義方式:

class 類名(object):

二、呼叫方式:

1、類名()

2、物件 = 類名()         

#當一個變數 等於 一個類名()  #時它就叫物件

三、方法:

1、公有方法()

#方法跟函式基本是類似,不同之處在於它的自帶一些引數,而且因為是寫在類裡面的所以呼叫時,是通過類的呼叫方式去點出方法的。定義方式即  def  函式名(self):

2、__私有方法()

#在函式名前面加上__雙下劃線,即  def   __函式名(self):

3、__系統方法__

#系統方法又稱為魔法方法,它是程式自己寫好的方法,直接書寫它的方法即可呼叫,即  def   __init__(self):

#常用的系統方法   ,可忽略

#__new__(cls)     #是在一個物件例項化的時候呼叫的第一個方法,它的第一個引數是這個類,其他引數是傳給__init__方法的

# __init__(self):     #構造,當一個例項被建立的時候呼叫的初始化方法

#__del__(self):     #析構,當一個例項被銷燬的時候呼叫的方法

#__str__(self):      #定義當被str()呼叫時的行為

【程式碼】:

類的書寫規範:

#類的書寫規範
#建立一個test類
class test(object):
    #系統方法
    def __init__(self):
        pass                
    #公開方法
    def fountion1(self):
        pass
    #私有方法
    def __fountion2(self):
        pass
#呼叫方式
t = test()
t.fountion()
#定義物件,通過物件點出公開方法

#私有方法只能通過在公開方法裡面定義才能呼叫,後面有講
#pass是跳過當前語句

__init__方法:

class test(object):
    def __init__(self,Name,Number):
        self.name = Name
        self.number = Number
    def fountion(self):
        print(self.name)
        print(self.number+100)

t = test("小愛",150)
t.fountion()

#__init__方法是接收例項物件時傳遞進來引數的

#通過例項類 test(引數) 來向類裡面的方法傳遞引數,用__init__(self,接收引數位

)方法接收引數

#輸出結果

輸出結果 小愛
輸出結果 250

類執行順序:

#類的內部自帶方法程式執行順序方法:new、init、  、del
class Test(object):
    number = 100
    def __new__(cls):
        print("__new__建立")
        return object.__new__(cls)
    def __init__(self):
        print("__init__初始化")
    def __str__(self):
        print("__str__物件描述資訊方法")
        return self.number
    def __del__(self):
        print("__del__刪除")

test = Test()

#__str__方法呼叫是直接print(物件)會輸出__str__ return 返回的資訊

#輸出結果

__new__建立
__init__初始化
__del__刪除

私有方法的呼叫:

#公有方法調私有方法
class Mo:
    def __test(self):     #私有方法定義方式: __xx() 
        print("asasasas")

    def text(self,m):
        if m>0:
            self.__test()    #呼叫私有方法
        else:
            print("bbbbbbbbb")

mo = Mo()     #給Mo建立物件
mo.text(10)   #通過物件點出公有方法


#原理介紹:
#在公有方法裡面設定私有方法,
#通過呼叫公有方法從而能呼叫私有方法


#聯想記憶:
#python的類就像一棟房子,公有方法就像公開的大廳前臺,私有方法就像房間,要想進入房間就要先通過大廳前臺找到這間房的鑰匙

#輸出結果

asasasas

*********************************************************************************

類方法:通過@classmethod裝飾器裝飾並且第一個引數是cls的方法叫類方法

例項方法:沒有通過@classmethod裝飾器裝飾並且第一個引數是self的方法叫例項方法

類屬性:cls.屬性

例項屬性:self.屬性

#類方法、例項方法、類屬性、例項屬性
class Game(object):
    num = 0

    def __init__(self):
        self.name = "lcarus"

    @classmethod#裝飾器
    def addmethods(cls):
        cls.num = 100

    @staticmethod#裝飾器
    def print_s():
        print("-----------")

game = Game()
print(game.name)
game.addmethods()
print(game.num)
game.print_s()

#輸出結果

lcarus
100
-----------