1. 程式人生 > 其它 >Python基礎 - 面向物件

Python基礎 - 面向物件

技術標籤:python程式語言多型java

目錄[-]


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

在方法內呼叫類其他方法:cls.—


6、靜態方法

如果一個類方法既不訪問實力化屬性和例項化方法,也不訪問類屬性和類方法,則可以將這個方法定義為靜態方法。靜態方法定義無須傳遞引數。

class Dog:

    @staticmethod
    def run():
        print("running...")

Dog.run()

通過類名.靜態方法名字直接呼叫即可,不需要建立物件。