1、例項和物件的基本概念
#定義工具類,輸出建立了多少工具物件
class
tool
(object):
count =
0def
__init__
(self, name)
: self.name = name
tool.count +=1
tool_1 = tool(
"剪刀"
)tool_2 = tool(
"滑鼠"
)print
(tool.count)
4、屬性獲取機制(向上查詢機制),首先在物件內部查詢,然後向上查詢類屬性。
class
tool
(object):
count =
0def
__init__
(self, name)
: self.name = name
tool.count +=1
tool_1 = tool(
"剪刀"
)tool_2 = tool(
"滑鼠"
)tool_2.count =
99#直接給物件tool_2建立了個count屬性
print
(tool_2.count)
# 99
print
(tool.count)
# 2
5、類方法就是針對類物件定義的方法
語法結構:
@classmethod
def 類方法名(cls)
:pass
類方法需要用@classmethod修飾來標識,告訴
直譯器這是乙個類方法,類方法的第乙個引數應該是cls
class
tool
(object):
count =
0def
__init__
(self, name)
: self.name = name
tool.count +=1
@classmethod
defshow_tool_count
(cls)
:print
(cls.count)
建立工具物件
tool_1 = tool(
"斧頭"
)tool.show_tool_count(
)
6、靜態方法,
語法如下:
@staticmethod
def 靜態方法():
pass
class
dog(
object):
@staticmethod
defrun()
:# 不訪問例項屬性/類屬性
print
("跑步。。。。"
)#通過類名.呼叫靜態方法-不需要建立物件
dog.run(
)
7、運用類方法、靜態方式、例項方法的例子:
設計乙個game類
類屬性:歷史最高分
例項屬性:玩家姓名
靜態方法:顯示遊戲幫助資訊
類方法:顯示歷史最高分
例項方法:開始當前玩家的遊戲
class
game
(object):
#歷史最高分
top_score =
0def
__init__
(self, player_name)
: self.player_name = player_name
@staticmethod
defshow_help()
:print
("幫助資訊:讓殭屍進入大門")
@classmethod
defshow_top_score
(cls)
:print
("歷史記錄:%d"
%cls.top_score)
defstart_game
(self)
:print
("%s開始遊戲了..."
%self.player_name)
# 檢視遊戲的幫助資訊
game.show_help(
)# 檢視歷史最高分
game.show_top_score(
)# 建立遊戲物件
game = game(
"小明"
)game.start_game(
)
python 物件導向那些事 2
1 乙個物件的屬性可以是另外乙個類建立的物件。class gun def init self,model self.model model self.bullet count 0def add bullet self,count self.bullet count count defshoot se...
Python之物件導向的那些事
物件導向 需要有意義的物件導向的 不是有了類就是物件導向核心 類 物件 例項化方法和函式的區別 方法 設計層面 函式 程式運形,過程式一種稱謂 物件 物件是現實世界或者思維世界中的實體在計算機中的反映,它將資料以及這些資料上的操作封裝在一起 類 一類事物的統稱,物件是類具體化的產物,也就是例項化 不...
物件導向的那些事
繼承 將多個類中具有的同種功能和同種變數抽離出來讓其他類與這個類產生聯絡 多型 事物在不同的時候有不同的表現形式,也就是可以將不同的子類當成父類來看比如你現在是兒子但是在你兒子眼裡你就是父親 繼承 1 子類能夠繼承父類的絕大多數屬性,但是父類私有的不能被繼承,final修飾的方法不能被子類重寫,被f...