面向對象三大特性:多態(Polymorphism),繼承(Inheritance)和封裝(Encapsulation)python
類:對具備相同數據和方法的一組對象的描述或定義。web
對象:對象是一個類的實例。ide
實例(instance):一個對象的實例化實現。函數
標識(identity):每一個對象的實例都須要一個能夠惟一標識這個實例的標記。atom
實例屬性(instance attribute):一個對象就是一組屬性的集合。spa
實例方法(instance method):全部存取或者更新對象某個實例一條或者多條屬性的函數的集合。code
類屬性(classattribute):屬於一個類中全部對象的屬性,不會只在某個實例上發生變化orm
類方法(classmethod):那些無須特定的對性實例就可以工做的從屬於類的函數。對象
#!/usr/bin/env python
#coding:utf-8
class people:#類(建立一我的的類)
def __init__(self,name,age,sex): #__init__是初始化對象,在實例化對象前完成,根據對象實例時自動執行。
self.Name = name # 當一個類定義了__ init __ 方法後,類實例化時會自動調用 __ init __ ().
self.Age = age
self.Sex = sex
def talk(self):#函數,在類中叫方法必需要帶self這個形式參數,無論有沒有參數
print("hello world")
class man(people):#建立一個男人的子類,他繼承了父類中的全部屬性和方法
def __init__(self,name,age,sex,job):
people.__init__(self,name,age,sex)
self.job = job
def action(self):
print("You job is",self.job)繼承
kinger = people('king',24,'man')#實例話一個對象,注意字符參數要加引號。封裝這三個參數到name,age,sex屬性中
kinger.talk() #調用類方法
kinger.add = 'sz' #給實例增長一個屬性
print kinger.Name ,kinger.add
atom = man('blue',24,'femail','IT')#封裝這幾個參數給man這個類,實例化atom這個對象
print atom.job,atom.Name,atom.Sex,atom.Age
atom.action()#調用自己的方法
atom.talk()#調用父類中的方法
執行結果以下:
對象=屬性+方法
一個對象的特徵也稱爲屬性(attribute)。它所具備的行爲也稱爲方法(method)類實例化後,可使用其屬性,實際上,建立一個類以後,能夠經過類名訪問其屬性若是直接使用類名修改其屬性,那麼將直接影響到已經實例化的對象。
把具備相同屬性和方法的對象歸爲一個類(class)。
類是對象的抽象化,對象是類的實例化。類不表明具體的事物,而對象表示具體的事物。
類的方法在類地內部,使用def關鍵字能夠爲類定義一個方法,與通常函數定義不一樣,類方法必須包含參數self,且爲第一個參數。私有的類方法__private_method 兩個下劃線開頭,聲明該方法爲私有方法,不能在類地外部調用在類的內部調用slef.__private_methods類的部分專有方法:__init__ 構造函數,在生成對象時調用__del__ 析構函數,釋放對象時使用__repr__ 打印,轉換__setitem__按照索引賦值__getitem__按照索引獲取值