Python面向对象-概念、类、实例
OOP——Object Oriented Programming,面向?qū)ο缶幊?#xff0c;是一種程序設(shè)計思想。該思想將對象作為程序的基本單元,一個對象包含了數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)。
區(qū)別于面向過程的程序設(shè)計即把計算機程序視為一系列的命令集合(即一組函數(shù)的順序集合),面向?qū)ο蟮某绦蛟O(shè)計是把計算機程序視為一組對象的集合,每個對象都可以接受其他對象發(fā)過來的消息,并可以處理這些消息,計算機程序的執(zhí)行就是一系列消息在各個對象之間的傳遞。
”萬物皆對象“!
面向?qū)ο蟮脑O(shè)計思想是人們觀察自然中現(xiàn)象的一種認(rèn)知模式。想想,自然界中,類class和實例Instance的概念是不是很自然而然的呢?比如,定義類Class——動物,而實例Instance則是一個個具體的動物,比如說狗、貓就是兩個具體的動物。
面向?qū)ο蟮脑O(shè)計思想就是抽象出class,然后根據(jù)class創(chuàng)建Instance。因為一個class既包含數(shù)據(jù),又包含操作數(shù)據(jù)的方法,所以可以說面向?qū)ο蟮某橄蟪潭缺让嫦蚝瘮?shù)要高。
Python中所有的數(shù)據(jù)類型都可以視為對象,也可以自定義對象。自定義對象就是面向?qū)ο笾械念?#xff08;Class)的概念。
舉例:
通過class關(guān)鍵字來定義一個Student的類:
class Student(object):pass定義好了Student類(模板)后,就可以根據(jù)Student類創(chuàng)建出Student的實例。創(chuàng)建實例是通過類名+()實現(xiàn)的:
>>> WC = Student() >>> Student <class '__main__.Student'> >>> WC <__main__.Student object at 0x03783270>從上述結(jié)果可以看出,WC指向的是Student的實例,內(nèi)存地址為0x03783270。而Student本身則是一個類,并沒有分配內(nèi)存地址。
既然類實際是一個模板的作用,那么我們在設(shè)計模板的時候,把一些我們認(rèn)為的一些通用的屬性或者行為強制性的賦予給模板,以后新建實例的實例,就會直接持有這些通用的屬性或者行為了。一般的,通過__init__方法,實現(xiàn)上述過程。
比如,我們認(rèn)為Student一般都會有name、score屬性:
class Student(object):def __init__(self,name,scoreself.name = nameself.score = score注意,__init__方法的第一個參數(shù)永遠(yuǎn)都是self,表示創(chuàng)建的實例本身。在__init__方法內(nèi)部,就可以把屬性綁定到self上。有了__init__函數(shù)后,創(chuàng)建實例的時候,就必須傳入于__init__方法匹配的參數(shù),其中self不需要傳:
>>> WC = Student('Wuchong',99) >>> WC.name 'Wuchong' >>> WC.score 99WC就是類Student的一個實例。
和一般函數(shù)相比,類中定義的函數(shù)有點不同:就是第一個參數(shù)永遠(yuǎn)是self,并且在調(diào)用的時候,不需要傳遞該參數(shù)。
?
posted on 2018-03-06 12:32 風(fēng)雨一肩挑 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/hiwuchong/p/8513728.html
總結(jié)
以上是生活随笔為你收集整理的Python面向对象-概念、类、实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 掌上民生养老保险怎么认证
- 下一篇: 网上怎么查询车辆保险信息