理解Python中的类对象、实例对象、属性、方法
生活随笔
收集整理的這篇文章主要介紹了
理解Python中的类对象、实例对象、属性、方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
class Animal(object): # 類(lèi)對(duì)象age = 0 # 公有類(lèi)屬性__like = None # 私有類(lèi)屬性def __init__(self): # 魔法方法self.name = 'haha' # 公有實(shí)例屬性self.__sex = 'man' # 私有實(shí)例屬性def smile(self): # 公有方法 self指向?qū)嵗龑?duì)象passdef __jump(self): # 私有方法pass@classmethoddef run(cls): # 類(lèi)方法 cls 指向類(lèi)對(duì)象pass@staticmethoddef msg(): # 靜態(tài)方法,可以沒(méi)有參數(shù)pass'''
# 類(lèi)對(duì)象:
將具有相似屬性和方法的對(duì)象總結(jié)抽象為類(lèi)對(duì)象,可以定義相似的一些屬性和方法,不同的實(shí)例對(duì)象去引用類(lèi)對(duì)象的屬性和方法,能減少代碼的重復(fù)率。# 類(lèi)屬性:
類(lèi)對(duì)象所有的屬性,類(lèi)對(duì)象和實(shí)例對(duì)象均可以訪問(wèn),被它們共同擁有; # 公有類(lèi)屬性:
可以在類(lèi)外修改類(lèi)屬性,需要通過(guò)類(lèi)對(duì)象引用直接修改;
類(lèi)內(nèi)可以通過(guò)類(lèi)方法修改類(lèi)屬性。
如果通過(guò)實(shí)例對(duì)象來(lái)引用類(lèi)屬性,相當(dāng)于實(shí)例對(duì)象在實(shí)例方法中創(chuàng)建了一個(gè)和類(lèi)屬性相同的名字,等同于局部變量實(shí)例屬性,和類(lèi)屬性無(wú)關(guān); # 私有類(lèi)屬性:
類(lèi)外通過(guò)類(lèi)對(duì)象引用不能直接更改,只能通過(guò)實(shí)例方法調(diào)用類(lèi)對(duì)象更改。# 類(lèi)方法:
需要修飾器@classmethod,標(biāo)示其為類(lèi)方法,類(lèi)方法的第一個(gè)參數(shù)必須為類(lèi)對(duì)象,一般用cls表示,通過(guò)cls引用的必須是類(lèi)屬性和類(lèi)方法。# 靜態(tài)方法:
需要修飾器@staticmethod,標(biāo)示其為靜態(tài)方法。需要做一些功能,和類(lèi)相關(guān),但不需要類(lèi)和對(duì)象參與,此時(shí)可以使用靜態(tài)方法,靜態(tài)方法可以不需要參數(shù)。# 實(shí)例對(duì)象:
通過(guò)類(lèi)對(duì)象創(chuàng)建的實(shí)例對(duì)象# 實(shí)例屬性:
通過(guò)方法定義的屬性 # 私有實(shí)例屬性:
__開(kāi)頭定義的變量名;只能通過(guò)方法調(diào)用來(lái)更改
公有實(shí)例屬性:
可以通過(guò)實(shí)例對(duì)象重新定義# 實(shí)例方法:
第一個(gè)參數(shù)公認(rèn)為self,可以調(diào)用類(lèi)對(duì)象和實(shí)例對(duì)象。# 私有方法:
只能在類(lèi)內(nèi)調(diào)用,如果類(lèi)外調(diào)用,則需要類(lèi)內(nèi)的公有方法調(diào)用類(lèi)內(nèi)的私有方法,在類(lèi)外調(diào)用這個(gè)公有方法,則間接調(diào)用了私有方法。
一個(gè)程序中最核心的內(nèi)容,不能隨意調(diào)用,可以設(shè)置為私有方法,通過(guò)公有方法的判斷去調(diào)用私有方法!# 公有方法:
可以在類(lèi)內(nèi)類(lèi)外隨意調(diào)用。# 魔法方法:
例如__init__方法,用兩個(gè)__前后包裹的方法
'''
轉(zhuǎn)載于:https://www.cnblogs.com/wf-skylark/p/9009770.html
總結(jié)
以上是生活随笔為你收集整理的理解Python中的类对象、实例对象、属性、方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python 工具——Anaconda+
- 下一篇: Java String的intern