python中一切皆為對象
?? 其實面向對象沒什么高大上的東西,只不過把我們平時對于事物的描述和動作系統(tǒng)的總結成了一個定義事物的方法而已变姨。
我們平時向別人介紹一個他(她)從未見過的東西巴席,會從外形和外貌特征來說明這個東西,比如顏色兰迫,大小等,這就對象的屬性炬称。還會介紹這個東西能做什么或者有什么用汁果,這就是對象的方法。所以用屬性和方法就可以定義一個對象玲躯。也就是說一個對象包含了各種屬性和方法据德。
在python中使用對象屬性和方法的記法為:object.attribute 或 object.method()?,Python中創(chuàng)建對象的第一步是建立一個類(class),這個類就類似于我們區(qū)分動物和植物跷车。動物類和植物類各有自己的特征棘利,當我們見到一個事物時,如果它滿足動物的特征朽缴,我們就說它是動物善玫;如果它滿足植物的特征,那么它就屬于植物密强。同樣的當我們在python中建立一個類時茅郎,就要說名這個類的屬性有什么,方法有什么或渤。然后再創(chuàng)建屬于這個類的具體實例系冗,也就是對象。那么這個對象也就有了這個類的屬性和方法薪鹦。但具體的屬性和方法根據具體對象而定掌敬。就像動物類的屬性就是有耳朵惯豆,有眼睛,有皮毛涝开,方法就是移動循帐,進食等等,具體對象比如說是兔子那就是有長長的耳朵舀武,紅色的眼睛拄养,白色的皮毛。方法就是奔跑银舱,進食就是吃胡蘿卜瘪匿。這樣理解類和對象或者實例就沒什么抽象的了。
__init__(): 創(chuàng)建類的默認屬性寻馏,也稱初始化
__str__() : 返回對象的字符串表達式
面向對象的程序設計的核心是對象(上帝式思維)棋弥,要理解對象為何物,必須把自己當成上帝诚欠,上帝眼里世間存在的萬物皆為對象顽染,不存在的也可以創(chuàng)造出來。對象是特征和技能的結合轰绵,其中特征和技能分別對應對象的數據屬性和方法屬性粉寞。
Self關鍵字的用法
為了辨別此時此刻正在處理哪個對象,self指針變量指向當前時刻正在處理的對象,即構造出來的對象 在構造方法中self代表的是:self指針變量指向當前時刻正在創(chuàng)建的對象
構造函數中self.name = name 的含義:將局部變量name的數值發(fā)送給當前時刻正在創(chuàng)建的對象中的name成員 .
還有一種理解:self是一個形參,這個形參是引用類中的屬性的左腔,是類中獨有的
面向對象的編程---object oriented programming唧垦,簡稱:OOP,是一種編程的思想液样。OOP把對象當成一個程序的基本單元振亮,一個對象包含了數據和操作數據的函數。面向對象的出現極大的提高了編程的效率鞭莽,使其編程的重用性增高坊秸。面向對象的編程---object oriented programming,簡稱:OOP澎怒,是一種編程的思想妇斤。OOP把對象當成一個程序的基本單元,一個對象包含了數據和操作數據的函數丹拯。面向對象的出現極大的提高了編程的效率,使其編程的重用性增高荸恕。
2.
class Person(object): ???
????def __init__(self,name): ??#——————>初始化函數
???self.name = name
????????print "------>create:",name
????def say_name(self)
print "my name is %s" %self.name
p1 = Person("gf1") ??# --------->類的實例化
p2 = Person("gf2")
p1.say_name()
p2.say_name()
輸出結果:
1 ------>create: gf1
2 ------>create: gf2
3 my name is gf1
4 my name is gf2
以上程序是類的一個基本寫法乖酬,理解如下
1、person就是一個類融求,在這個類中是很多的方法集合咬像。例如類中包含sayname等,還可以按照程序要求靈活添加各種類的方法。
2县昂、類中self其實就是類的對象肮柜,是一個具體的實例。多種的實例通過類中的self表現出來倒彰。
3审洞、程序中的p1、p2是具體的實例待讳,實體芒澜。(學名叫:對象。)创淡。一個對象就是一個實體痴晦。實體通過調用屬性、方法在類中體現相應的功能琳彩。