Python面向?qū)ο笾腴T類和對象
什么是面向?qū)ο缶幊蹋?/h2>
我們是不是聽過面向過程,拿來放在一起對比就比較好理解了。
簡單來理解,面向過程就是一切用函數(shù)解決一切文件,簡單粗暴!
面向?qū)ο笫敲嫦蜻^程編程之后才出現(xiàn)了,沒有面向?qū)ο缶幊毯芏喑绦蜻€不是照樣開發(fā)。
面向?qū)ο?,也使用函?shù),但是多了一個網(wǎng),這個網(wǎng)把一個或者多個函數(shù),和數(shù)據(jù)關(guān)聯(lián)在一起,然后稱為一類事物,也就是程序中的‘類'(class)
定義類,從具體代碼來感受吧!
面向?qū)ο缶幊?,首先提出的第一個概念就是‘class',類:
#這就是一個class的定義代碼: class hello_class(): pass
然后通過class_name()
這樣調(diào)用來生產(chǎn)對象。
代碼稍微升級一下,我們看看:
class hello_class(): pass #輸出類信息 print(hello_class) print(type(hello_class)) #創(chuàng)建類的實例對象 print(hello_class()) print(type(hello_class()))
稍微補充一下:
print函數(shù)輸出類對象的結(jié)果:通常是<'class全名‘ object at id序列號>
下面是運行結(jié)果:
這里我們加入新知識點:類實例對象 , 通常直接說,實例。
實例是class產(chǎn)生的對象,所有某個hello_class對象的類型(通過type函數(shù)獲?。┒急囟ㄊ莌ello_class。
多個類和對象的觀察
看完一個類,我們再看看兩個類的對比,結(jié)果也是一致的。
下面是兩個類的定義和生成對象的代碼展示:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/11/15 11:58 下午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷學委 # @XueWeiTag: CodingDemo # @File : __init__.py.py # @Project : hello class student(object): “”“學委補充一下:__init___ 函數(shù)為類的初始化函數(shù),在創(chuàng)建類對象實例的時候這個函數(shù)會被調(diào)用。”“” def __init__(self): print("hello, I am student") class programmer(object): def __init__(self): print("hello, I am programmer") class student(object): def __init__(self): print("hello, I am student") class programmer(object): def __init__(self): print("hello, I am programmer") s1 = student print(s1) p1 = programmer print(p1) s11 = student print(s11) p11 = programmer print(p11) print("*" * 16) # 創(chuàng)建對象 s2 = student() print(s2) p2 = programmer() print(p2) # 創(chuàng)建對象 s3 = student() print(s3) p3 = programmer() print(p3)
稍微解釋一下:
- s1 和 p1 這兩個變量打印輸出結(jié)果是‘class'類型的。
- s11 和 p11 這兩個變量打印輸出結(jié)果是‘class'類型的,但是s1跟s11,p1跟p11 是不變的。
- s2 和 p2 這兩個變量打印輸出結(jié)果是'object'類型的。
- s3 和 p3 這兩個變量打印輸出結(jié)果是'object'類型的。
下面是運行結(jié)果:
初始化函數(shù)被調(diào)用了打印了對象信息。
到這里,大家應該都能知道class和object區(qū)別了吧
類: 描述了函數(shù)和屬性的固定關(guān)系
(類實例)對象: 基于這種固定關(guān)系的一個活生生的個體,它的id是變化的。
補充一下類的屬性(數(shù)據(jù)部分)
學委定義了一個student類,并創(chuàng)建了兩個學生對象。
直接復制運行下面的代碼:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/11/15 11:58 下午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷學委 # @XueWeiTag: CodingDemo # @File : __init__.py.py # @Project : hello class student(object): def __init__(self, name): self.name = name def get_name(self): return self.name def set_name(self, name): self.name = name def study(self): print(f"{self.name} : 好好學習,天天向上!") s1= student("小白") print(s1) print(s1.get_name()) print(s1.study()) s2 = student("學委的學生粉絲:哈哈哈") print(s2) print(s2.get_name()) print(s2.study())
我們看到他們的id總是不同的(運行幾次看看)。
然后每個學生都有一個name屬性(攜帶姓名數(shù)據(jù)),和三個函數(shù)屬性(分別用來獲取姓名,改名,學習)。
然后我們調(diào)用了每個學生的study函數(shù),輸出了各自的學習狀態(tài)。
總結(jié)
Python語言的簡約設計,使得面向?qū)ο缶幊谭浅:唵?,輕松就定義和和獲取對象了。
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python?subprocess執(zhí)行外部命令常用方法詳細舉例
這篇文章主要給大家介紹了關(guān)于python?subprocess執(zhí)行外部命令常用方法的相關(guān)資料,Python的subprocess模塊提供了一種在Python中調(diào)用外部命令的方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-12-12python網(wǎng)絡爬蟲實現(xiàn)發(fā)送短信驗證碼的方法
這篇文章主要介紹了python網(wǎng)絡爬蟲實現(xiàn)發(fā)送短信驗證碼的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02virtualenv隔離Python環(huán)境的問題解析
virtualenv為應用提供了隔離的Python運行環(huán)境,解決了不同應用間多版本的沖突問題,這篇文章主要介紹了virtualenv隔離Python環(huán)境,需要的朋友可以參考下2022-06-06python連接MySQL、MongoDB、Redis、memcache等數(shù)據(jù)庫的方法
這篇文章主要介紹了python連接操作MySQL、MongoDB、Redis、memcache等數(shù)據(jù)庫的方法,大家可以參考使用2013-11-11