Python面向對象

Python面向對象

1.定義

面向對象:把數據和動作內嵌到一個結構體(函數或類)裏,就有了一個‘對象系統’(對象就是數據與函數整合在一起的產物)

:把一類事物的相同的特徵和動作整合到一起就是類,類是一個抽象的概念。

對象:就是基於類而創建的一個具體的事物(具體存在的),也是特徵和動作整合到一起。

面向對象設計(Object oriented design):將一類具體事物的數據和動作整合到一起,即面向對象設計。面向對象設計既可以用面嚮對象語言實現,也可以用面向過程語言實現。

面向對象編程(Object oriented programming):用面向對象編程獨有的class語法實現面向對象設計,即面向對象編程。

用面嚮對象語言寫程序,和一個程序設計是面向對象的,兩者間並沒有任何關係。

面嚮對象語言:提供了豐富的class方面的方法支持。)

2.實現

# 定義一個學生,有姓名,性別,年齡,班級屬性,有學習方法
  • 面向過程語言實現面向對象設計
def student(name, gender, age, class_no):
    def init():
        student_property = {
            'name': name,
            'gender': gender,
            'age': age,
            'class_no': class_no,
            'learn': learn
        }
        return student_property

    def learn(student_property):
        print('%s的%s同學正在學習,他今年%d歲' % (student_property['class_no'], student_property['name'], student_property['age']))

    return init()


xiaoming = student('小明', '男', 18, '高三2班')
xiaoming['learn'](xiaoming)

執行的結果:

高三2班的小明同學正在學習,他今年18
  • 面嚮對象語言實現面向對象設計
class Student(object):

    def __init__(self, name, gender, age, class_no):
        self.name = name
        self.gender = gender
        self.age = age
        self.class_no = class_no

    def learn(self):
        print('%s的%s同學正在學習,他今年%d歲' % (self.class_no, self.name, self.age))


xiaoming = Student('小明', '男', 18, '高三2班')
# xiaoming.learn()等價於下面這句話
Student.__dict__['learn'](xiaoming)

執行的結果:

高三2班的小明同學正在學習,他今年18歲
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章