直接上乾貨~
from random import randint
class Game:
'''
類方法,不需要實例化,通過類名直接調用,使用裝飾器@classmethod修飾
@cls: 第一個參數必須是當前類本身,參數名一般約定爲cls
'''
@classmethod
def play1(cls):
cls().__play()
'''
靜態方法,通過類或者實例對象調用,使用裝飾器@staticmethod修飾。
參數隨意,沒有self和cls參數,方法體中不能使用類或實例的任何屬性和方法;
'''
@staticmethod
def play2():
print("此處無法調用本類中的其它屬性和方法")
'''
實例方法,必須實例化類之後才能被調用
@self: 第一個參數必須是當前類的實例對象,參數名一般約定爲self
'''
def play3(self):
self.__play()
'''
私有方法,以兩個下劃線開頭,只能在類的內部調用
@self: 第一個參數必須是當前類的實例對象,參數名一般約定爲self
'''
def __play(self):
print("猜數字遊戲!")
rand_int = randint(0, 100)
while True:
user_guess = int(input("請輸入您猜的數字(0-100):"))
if user_guess == rand_int:
print(f"您猜的數字是{user_guess},恭喜您猜中了!")
break
if user_guess > rand_int:
print(f"您猜的數字是{user_guess},太大了,再接再厲!")
continue
if user_guess < rand_int:
print(f"您猜的數字是{user_guess},太小了,再接再厲!")
continue
if __name__ == "__main__":
game = Game()
# 調用方式一
Game.play1() # 類調用
game.play1() # 實例對象調用
# 調用方式二
Game.play2() # 類調用
game.play2() # 實例對象調用
# 調用方式三
game.play3() # 實例對象調用