1. 程式人生 > 實用技巧 >python基礎13-類

python基礎13-類

類:

參考文件:jianshu.com/p/202a289fb2d9

Python3 中類的靜態方法、普通方法、類方法

靜態方法: 用 @staticmethod 裝飾的不帶 self 引數的方法叫做靜態方法,類的靜態方法可以沒有引數,可以直接使用類名呼叫。

普通方法: 預設有個self引數,且只能被物件呼叫。

類方法: 預設有個 cls 引數,可以被類和物件呼叫,需要加上 @classmethod 裝飾器


class Classname:
    @staticmethod
    def fun():
        print('靜態方法')

    @classmethod
    def a(cls):
        print(
'類方法') # 普通方法 def b(self): print('普通方法') Classname.fun() Classname.a() Classname().b() C = Classname() C.fun() C.a() C.b() class Dog(): # 初始化包含 類的屬性 """ __init()__:每當類Dog 建立新例項 python都會自動執行他 """ def __init__(self,name,age): self.name = name self.age
= age # 行為 坐 def sit(self): print(self.name.title() + "is now sitting.") # 行為 打滾 def roll_over(self): print(self.name.title() + "rolled over !") my_dog = Dog("小花",2) # 在類中傳入初始化的引數 # 訪問屬性 print("my dog name is "+ my_dog.name.title()+".") # 只用了初始化引數 print("my dog is
"+ str(my_dog.age)+ " years old .") # 呼叫方法 my_dog.sit() # 呼叫類裡面的方法 my_dog.roll_over() # * 使用類和例項 class Car(): def __init__(self,make,model,year): self.make = make self.model = model self.year = year def get_desc_name(self): long_time = str(self.year) + " " + self.make +" " + self.model # 呼叫初始化方法的 引數 return long_time my_car = Car("audi","a4",2016) # 類裡面可以直接傳 初始化的實參 print(my_car.get_desc_name()) # 統計建立的物件數: class Tool(object): # 使用賦值語句,定義類屬性,記錄建立工具物件的總數 count = 0 def __init__(self, name): self.name = name # 針對類屬性做一個計數+1 Tool.count += 1 # 建立工具物件 tool1 = Tool("斧頭") tool2 = Tool("榔頭") tool3 = Tool("鐵鍬") # 知道使用 Tool 類到底建立了多少個物件? print("現在建立了 %d 個工具" % Tool.count) """ 繼承: 編寫的類是 另一個現成類的特使版本 --可使用繼承 子類自動繼承了父類的 所有屬性和方法,同時還可以自己定義自己的屬性和方法 參考文件:https://www.cnblogs.com/feeland/p/4419121.html """ 案例: class Person(object): def __init__(self,name,sex): self.name = name self.sex = sex def print_title(self): if self.sex == "male": print("man") elif self.sex == "female": print("woman") class Child(Person): # Child 繼承 Person pass May = Child("May","female") Peter = Person("Peter","male") print(May.name,May.sex,Peter.name,Peter.sex) # 子類繼承父類方法及屬性 May.print_title() Peter.print_title()