Python專案案例開發從入門到實戰-1.3 Python物件導向設計

紫雲無堤發表於2019-05-19

1.3.1定義於使用類

  • 類的定義
class class_name;
    attribute
    function
例:
class Person:
    age=18
    def say():
        print("Hello!")

1.3.2建構函式

一個特殊的方法,以兩個下劃線“__”開頭和結尾

class Complex:
    def __init__(self, realpart,imagpart):
        self.r=realpart
        self.i=imagpart
x=Complex(3.0,2)
print(x.r,x.i)

1.3.3解構函式

另一個特殊的方法,以兩個下劃線“__”開頭和結尾

class Complex:
    def __init__(self, realpart,imagpart):
        self.r=realpart
        self.i=imagpart
    def __del__(self):
        print("It has gone")
x=Complex(3.0,2)
print(x.r,x.i)
del x

1.3.4例項屬性和類屬性

屬性(成員變數)有兩種,一種是例項屬性,一種是類屬性(類變數)。
例項屬性是在建構函式中定義的,定義時以self作為字首
類屬性是在類中方法之外定義的屬性
在主程式中,例項屬性屬於(例項)物件,只能通過物件名訪問,而類屬性屬於類,可通過類名訪問,也可通過例項物件訪問

例:
class Person:
    type = mammal              類屬性
    def __init__(self,str,n):  建構函式
        self.name = str        例項屬性
        self.sage = n
    def sat():
        ...

1.3.5私有成員和共有成員

屬性名前有兩個下劃線“__”為為私有屬性,否則為共有屬性

class Car:
    price = 100
    def __init__(self, c,w):
        self.color = c          共有屬性
        self.__weight = w       私有屬性

car1 = Car("Red",10)
print(car1.color)
print(car1.__Car__weight)

1.3.6方法

class Fruit:
    price=100
    def __init__(self):
        self.__color = ''
    def __output(self):     私有方法
        print(self.__color) 訪問私有屬性
    def output(self):
        self.__output()     通過私有方法訪問私有屬性
    @staticmethod
    def getPrice()          定義靜態方法
        return Fruit.price

1.3.7類的繼承

class 派生類名(基類名)
    派生類成員

1.3.8多型

不想寫了。。。

相關文章