天天看點

Python類

一.類基礎

#類
class Dog(): #定義
    def __init__(self,name): #初始化屬性,self指派後,所有方法都可以用
        self.name = name

    def sit(self): #擷取屬性
        print(self.name.title() + " is now sitting.")

my_dog = Dog('wang') #調用方法
my_dog.sit()
my_dog.name = xx #直接修改指派

print(my_dog.name) #隻列印變量

#類繼承
class A_Dog(Dog):
    def __init(self,name): #父類有的那些參數
    super().__init__(name) #初始化父類的那些參數,這樣父類參數可以懶得寫slef.xx=xx
    self.xx = xx #子類自己的變量
    def sit(self): #和父類重名,将直接覆寫

#對方法進行定義屬性,可以方法定義return 2*,這樣實時更新結果
name = property(get_name, set_name) #套入方法
xx = abc('nginx')
xx.name = 'xx' #指派操作時,set_name就會被調用

@property #在修改函數的上面套用,類似get
@name.setter #類似set

#類拆分
class B_Dog():
    self.adog = A_Dog() #将類指派
b.adog.sit() #調用


self.__name = xxx #禁止外部調用 xx.name方式調用

fowl._Duck__name #檢視類别

@classmethod #類方法
def xx(cls):
    print(cls.count) #列印有幾個類引用
類名.xx() #調用

@staticmethod #靜态方法,直接對象.xx調用,不用指派
def commercial():
    print('This CoyoteWeapon has been brought to you by Acme')
           

二.特殊方法

class Word():
    def __init__(self, text):
        self.text = text
    def __eq__(self, word2): #不用再帶入類,word2是類名
        return self.text.lower() == word2.text.lower() #和别的類text比較
xx == dd #類直接比較
           
Python類

本文版權歸作者所有,歡迎轉載,請務必添加原文連結。