python类和对象介绍_python中的类,对象,方法,属性等介绍
注:這篇文章寫得很好。加底紋的是我自己的理解
python中一切皆為對象,所謂對象:我自己就是一個對象,我玩的電腦就是對象,坐著的椅子就是對象,家里養的小狗也是一個對象。。。。。。
我們通過描述屬性(特征)和行為來描述一個對象的。比如家里的小狗,它的顏色,大小,年齡,體重等是它的屬性或特征。它會汪汪叫,會搖尾巴等是它的行為。
我們在描述一個真實對象(物體)時包括兩個方面:
它可以做什么(行為)
它是什么樣的(屬性或特征)。
類是用來規范和描述實體對象的。類描述了類對應的每一個對象的屬性。如人類,神創造人類的時候,她就規定:人要有2只手,2只腳,站立行走,能吃飯能說話。。。。。。她沒有規定人類可以飛,所以每個人都沒有飛翔的本領。這都是人的屬性。
類還有規定了方法。方法是由類規定的,但是方法作用在一個確定的對象上。比如人類可以測出自己的體重,小紅站在體重計上,就得到了小紅的體重。
這里面,測體重就是一個類方法,類方法作用在類對應的確定對象上,因此可以測小紅的體重,但不能說測人類的體重。同時,只要是人類,都可以測體重,
并不是只有小紅可以測體重,這說明:類規定的方法,可以作用在所有的類對應的對象上。
在python中,一個對象的特征也稱為屬性(attribute)。它所具有的行為也稱為方法(method)
結論:對象=屬性+方法
在python中,把具有相同屬性和方法的對象歸為一個類(class)
比如人類,動物,植物等等,這些都是類的概念。
類是對象的模板或藍圖,類是對象的抽象化,對象是類的實例化。類不代表具體的事物,而對象表示具體的事物。
>>> class people:
...???? def speak(self):
...???????????? print ("hello!")
...
'''
定義一個people類,定義一個speak方法,但沒有定義屬性,
因為屬性不屬于類,而是屬于各個類的實例。也就是說屬于對象。
因此我們可以給每個實例設置不同的屬性
'''
>>> class people:?? ??? ??? ??? ??? ?#類
...???? def speak(self):?? ??? ??? ?#方法
...???????????? print ("hello!")
...
>>>
>>> jack = people()?? ?#創建jack實例
>>> tom = people()?? ?#創建tom實例
>>> import tab?? ??? ?#導入table鍵功能模塊
>>> jack.?? ??? ??? ?#輸入jack.,可以看到以下方法
jack.__class__?? jack.__doc__???? jack.__module__? jack.speak(
>>> jack.speak()?? ?#引用speak方法
hello!
>>> jack.age=39?? ??? ??? ?#添加age屬性
>>> jack.height=120?? ??? ?#添加height屬性
>>> jack.
jack.__class__?? jack.__module__? jack.height
jack.__doc__???? jack.age???????? jack.speak(
>>> jack.height
120
>>> jack.age
39
'''
#初始化對象
創建類時,可以定義一個特定的方法,名為__init__(),只要創建這個類的一個實例
就會運行這個方法??梢韵騙_init__()方法傳遞參數,
這樣創建對象時就可以把屬性設置為你希望的值
__init__()這個方法會在創建對象時完成初始化,
'''
>>> class peo:
...???? def __init__(self,name,age,sex):
...???????????? self.Name = name
...???????????? self.Age = age
...???????????? self.Sex = sex
...???? def speak(self):
...???????????? print "my name" + self.Name
...
>>>
實例化這個類的對象時:
>>> zhangsan=peo("zhangsan",24,'man')
>>> print zhangsan.Age
24
>>> print zhangsan.Name
zhangsan
>>> print zhangsan.Sex
man
# ----------
>>> print zhangsan
'''
要讓print能打印出來,就得使用__str__方法
__str__()這個方法告訴python在打印(print)一個對象時,具體顯示什么內容
'''
#! /usr/bin/python
class peo:
def __init__(self,name,age,sex):
self.Name = name
self.Age = age
self.Sex = sex
def speak(self):
print "my name" + self.Name
def __str__(self):
msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex
# msg='my name is: ' +self.Name+ ","+ "my age is: " + str(self.Age) +','+ "my sex is:" +self.Sex
return msg
shanghai=peo('shanghai','23','man')
# shanghai=peo('shanghai',23,'man')
'''
msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex
此處23是年齡,但被轉成了字符串,因為self.Age定義的是字符串
如果不將23轉義,則會報錯
如果希望在程序中就事先轉義,需要使用str(self.Age)
'''
print shanghai
'''
之前多次用到self這個形參
類就好比是一張藍圖,使用一個類可以創建多個對象實例,
speak()方法在被調用時,必須知道是哪個對象調用了它.
這里self參數就會告訴方法是哪個對象來調用的.這稱為實例引用。
zhangsan。speak()就好比寫成了peo.speak(zhangsan)
轉自:http://blog.chinaunix.net/uid-22521242-id-4017965.html
'''
總結
以上是生活随笔為你收集整理的python类和对象介绍_python中的类,对象,方法,属性等介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中fuse_一个Fanotify和FUS
- 下一篇: windows7内存诊断工具有用吗_Wi