1.靜態方法的使用
#_*_coding:utf-8_*_
# 類方法使用@classmethod 修飾
# cls.內部類封裝,可以在類方法內部訪問類方法和類屬性
class writer(object):
age = 15
def __init__(self, age, name):
writer.age += age
self.name = name
@staticmethod
def read():
print('你好啊')
def hello(self):
print(self.name)
@classmethod
def hear(cls):
print(cls.age)
rb = writer(18,'黎明')
rb.hear()
rb.read()
rb.hello()
執行結果:
2.使用cls來呼叫內部變數
import random
class game(object):
#遊戲最高分,類屬性
top_score = [0,0,0]
@staticmethod
def show_help():
print('幫助資訊,讓殭屍走進房間')
@classmethod
def show_top_score(cls):
print('遊戲最高分是 %d'% cls.top_score[0])
def __init__(self, player_name):
self.player_name = player_name
@classmethod
def show_onetothree(cls):
print('前三名的成績 %s'% cls.top_score)
def start_game(self):
print('[%s] 開始遊戲' % self.player_name)
self.score = random.randint(1,10000)
print('%s 遊戲結束...' %self.player_name)
print('%s 最後的分為 %d' % (self.player_name,self.score))
self.top_score.sort(reverse=true)
self.top_score=game.top_score.pop()
@classmethod
def show_score(cls):
print(cls.top_score)
#使用類名,修改歷史最高分
#game.top_score = 999
# 1. 檢視遊戲幫助
game.show_help()
# 2. 檢視遊戲最高分
#game.show_top_score()
# 3. 建立遊戲物件,開始遊戲
game1 = game('小明')
game1.start_game()
game2 = game('小紅')
game2.start_game()
game3 = game('小馬')
game3.start_game()
# 4.檢視前三名
game.show_onetothree()
# 5. 檢視歷史最高分
game.show_top_score()
結果圖:
Python中靜態方法與類方法比較
python是一種物件導向的程式語言,故類的概念十分重要。其中python類中方法的定義有這樣兩種靜態方法與類方法很相似。定義乙個類 class myclass staticmethod def foo1 print this is static method classmethod def foo...
Python類成員方法與靜態方法
python中類屬性有類屬性和例項屬性之分,類的方法也有不同的種類 例項方法 類方法靜態方法 例子 class demomthd staticmethod 靜態方法 def static mthd print 呼叫了靜態方法 classmethod 類方法 def class mthd cls pr...
Python中類方法和靜態方法
要在類中使用靜態方法,需在靜態方法前面加上 staticmethod標記符,以表示下面的成員函式是靜態函式。使用靜態方法的好處 其函式不需要self引數,可以通過類呼叫該方法,不需要定義該類例項 當然通過類例項呼叫也沒有問題 類方法可以通過類或它的例項來呼叫,但 該方法的 第乙個引數cls是定義該方...