直接上干货~
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() # 实例对象调用