python類 物件 方法 屬性之類與物件

2021-07-10 09:13:26 字數 3203 閱讀 1861

python

中一切皆為物件,所謂物件:我們自己就是乙個物件,我們玩的電腦就是物件,坐著的椅子就是物件,家裡養的小狗也是乙個物件...

我們通過描述屬性(特徵)和行為來描述乙個物件的。比如家裡的小狗,它的顏色,大小,年齡,體重等是它的屬性或特徵。它會汪汪叫,會搖尾巴等是它的行為。

我們在描述乙個真實物件(物體)時包括兩個方面:

1.它可以做什麼(行為)

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.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.age39

'''#初始化物件

建立類時,可以定義乙個特定的方法,名為__init__(),只要建立這個類的乙個例項

就會執行這個方法。可以向__init__()方法傳遞引數,

這樣建立物件時就可以把屬性設定為你希望的值

__init__()這個方法會在建立物件時完成初始化,

'''>>> class peo:

...     def __init__(self,name,age,***):

...             self.name = name

...             self.age = age

...             self.*** = ***

...     def speak(self):

...             print "my name" + self.name

... 

>>> 

例項化這個類的物件時:

>>> zhangsan=peo("zhangsan",24,'man')

>>> print zhangsan.age

24>>> print zhangsan.name

zhangsan

>>> print zhangsan.***

man# ----------

>>> print zhangsan

<__main__.peo instance at 0x7fe5041ec248>

''' 

要讓print能列印出來,就得使用__str__方法

__str__()這個方法告訴python在列印(print)乙個物件時,具體顯示什麼內容

'''#! /usr/bin/python

class peo:

def __init__(self,name,age,***):

self.name = name

self.age = age

self.*** = ***

def speak(self):

print "my name" + self.name

def __str__(self):

msg='my name is: ' +self.name+ ","+ "my age is: " + self.age +','+ "my *** is:" +self.***

# msg='my name is: ' +self.name+ ","+ "my age is: " + str(self.age) +','+ "my *** is:" +self.***

return msg

shanghai=peo('shanghai','23','man')

# shanghai=peo('shanghai',23,'man')

'''msg='my name is: ' +self.name+ ","+ "my age is: " + self.age +','+ "my *** is:" +self.***

此處23是年齡,但被轉成了字串,因為self.age定義的是字串

如果不將23轉義,則會報錯

如果希望在程式中就事先轉義,需要使用str(self.age)

'''print shanghai

'''之前多次用到self這個形參

類就好比是一張藍圖,使用乙個類可以建立多個物件例項,

speak()方法在被呼叫時,必須知道是哪個物件呼叫了它.

這裡self引數就會告訴方法是哪個物件來呼叫的.這稱為例項引用。

zhangsan。speak()就好比寫成了peo.speak(zhangsan)

'''

什麼是類 物件 方法 屬性

什麼是類?類,是一類事物的代表 不如說人 桌子 樹 等都是類 什麼是物件?物件,是某個類中特別指出的乙個,比如說人,人是乙個類吧,小明就是乙個物件,那麼小紅也是啦 某 個類中的乙個就是物件 什麼是方法?方法,是乙個類的動態屬性 什麼是屬性?屬性,是乙個類的靜態屬性 比如人,因為人是個類,小明是類的物...

Python 靜態方法,類方法,屬性方法

1.靜態方法 靜態方法 只是名義上歸類管理,實際上在靜態方法中訪問不了類和例項 class person object def init self name self.name name staticmethod 截斷類與函式關係,不能呼叫類變數 def eat print s is eating ...

python類方法 靜態方法 屬性方法

staticmethod和 classmethod都可以直接類名.方法名 來呼叫,那他們有什麼區別呢?從它們的使用上來看 staticmethod不需要表示自身物件的self和自身類的cls引數,就跟使用函式一樣。classmethod也不需要self引數,但第乙個引數需要是表示自身類的cls引數。...