Python基礎 - 面向物件
阿新 • • 發佈:2020-12-18
目錄[-]
1、Python中一切皆為物件
面向過程和麵向物件是兩大程式設計方式,其中面向物件的程式設計方式又有著類和物件兩個核心概念。類是抽象的存在,不能直接使用,但類中包含屬性和方法,物件則是由類創建出來的一個具體例項,在程式中先有類,然後才有物件。
面向物件的三大特性:封裝,繼承和多型。
2、物件常用的方法
•內建函式 dir(),則可以檢視物件內的所有屬性及方法
•__方法名 格式的方法是python的內建方法或屬性
3、定義簡單的類模版
class Animal: # 例項化一個類時,呼叫 __init__(self)方法 def __init__(self, name): # 為類定義一個屬性:name self.name = name # 為類定義一個私有屬性:__age self.__age = 10 # 在物件銷燬前,自動呼叫 __del__(self)方法 def __del__(self): self.name = "" self.__age = "" # 返回物件的描述資訊,表現在print(Animal)時返回的資訊 def __str__(self): print("this is a test method!") # 定義一個公有的方法 def bark(self): print("bark!!!") # 定義一個私有的方法 def __dogbark(self): print("dog!!!") # 繼承 class Dog(Animal): # 重寫 def bark(self): print("汪汪!!!")
4、類屬性的作用
類屬性通常用來記錄與這個類相關的特徵,不會用於記錄物件的特徵.類屬性直接定義在class下方在類內,而非Init方法內。定義在Init中的則為物件屬性。在記憶體中類只有一份,也是一種物件,而物件則有多個。
class Dog:
count = 0
def __init__(self):
Dog.count += 1
xiaohuang = Dog()
xiaohei = Dog()
print(Dog.count)
5、定義類方法
@classmethod
def 類方法名(cls):
pass
在方法內呼叫類其他屬性:cls.count
6、靜態方法
如果一個類方法既不訪問實力化屬性和例項化方法,也不訪問類屬性和類方法,則可以將這個方法定義為靜態方法。靜態方法定義無須傳遞引數。
class Dog:
@staticmethod
def run():
print("running...")
Dog.run()
通過類名.靜態方法名字直接呼叫即可,不需要建立物件。