本人自己摸索的方法:
class Dice:
"""
编写一个色子类,要求:
1.具有6个面,每个面为一种颜色
2.每种颜色代表一个数值(1-6)
3.实现一个通过颜色计算两种其代表数值和的静态方法
4.实现一个类方法(gen_dice)用于产生这个类的实例
"""
@staticmethod
def cal(color1,color2):
face = 0
def color_stand(color):
if color == "red":
face = 1
elif color == "green":
face = 2
elif color == "pray":
face = 3
elif color == "yellow":
face = 4
elif color == "blue":
face = 5
elif color == "pink":
face = 6
else:
print("your color is wrong!")
return face
num = color_stand(color1)+color_stand(color2)
print(num)
@classmethod
def gen_dice(cls):
return cls()
dice = Dice.gen_dice()
print(dice)
dice.cal("green","yellow")
然而总感觉太臃肿。。。
于是在网上查找了一下,发现一个更简洁的:https://zhidao.baidu.com/question/1735572021929033547.html?qbl=relate_question_0&word=%B1%E0%D0%B4%D2%BB%B8%F6%C9%AB%D7%D3%C0%E0
具体代码:
class Dice:
"""
编写一个色子类,要求:
1.具有6个面,每个面为一种颜色
2.每种颜色代表一个数值(1-6)
3.实现一个通过颜色计算两种其代表数值和的静态方法
4.实现一个类方法(gen_dice)用于产生这个类的实例
"""
face = {"red":1,"green":2,"yellow":3,"blue":4,"pray":5,"pink":6}
@staticmethod
def sum(color1,color2):
sum = Dice.face.get(color1)+Dice.face.get(color2)
return sum
@classmethod
def gen_dice(cls):
return cls()
dice = Dice.gen_dice()
print(dice)
dice.sum("yellow","blue")
其中有一个get()方法,它是属于字典的一个方法。
语法:
dict.get(key, default=None)
对于参数:
key -- 字典中要查找的键。
default -- 如果指定键的值不存在时,返回该默认值值。
简单理解就是可以通过字典的键名获取相对应的键值。