Python是一種面向?qū)ο缶幊陶Z(yǔ)言,因此類與方法是其核心概念之一。
類是一種自定義類型,在類中定義屬性和方法。可以實(shí)例化一個(gè)類,并使用對(duì)象調(diào)用其屬性和方法。
class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print("Hello, my name is " + self.name) person = Person("John", 30) person.say_hello()
上面的代碼中,定義了一個(gè)Person類,其中包含兩個(gè)屬性:name和age,以及一個(gè)方法:say_hello。在實(shí)例化Person時(shí),將傳入的name和age分別賦值給相應(yīng)的屬性。通過(guò)person.say_hello()調(diào)用say_hello方法。
在方法中,self代表一個(gè)對(duì)象實(shí)例,可以使用該實(shí)例的屬性和方法。
除了普通方法,還有靜態(tài)方法和類方法。靜態(tài)方法可以通過(guò)類名或?qū)ο竺苯诱{(diào)用,與類或?qū)ο鬅o(wú)關(guān),一般用于一些與類相關(guān)但不需要訪問(wèn)實(shí)例或類屬性的操作。類方法使用@classmethod裝飾器定義,第一個(gè)參數(shù)為cls代表類本身,可以訪問(wèn)類屬性,但不能訪問(wèn)實(shí)例屬性。
class Person: total_count = 0 # 類屬性 def __init__(self, name): self.name = name Person.total_count += 1 @staticmethod def get_total_count(): return Person.total_count @classmethod def create_person(cls, name): return cls(name) person1 = Person("John") person2 = Person("Mary") print(person1.get_total_count()) # 2 print(Person.get_total_count()) # 2 person3 = Person.create_person("Tom")
上面的代碼中,定義了一個(gè)total_count類屬性,用于記錄實(shí)例化的Person對(duì)象數(shù)量。靜態(tài)方法get_total_count返回對(duì)象數(shù)量,可以通過(guò)類名或?qū)ο竺L問(wèn)。類方法create_person用于創(chuàng)建Person實(shí)例。
類與方法是Python面向?qū)ο缶幊痰闹匾糠郑軌虼蟠筇岣叽a的可讀性、可維護(hù)性和復(fù)用性。