我正在尝试用 Python 制作一个“石头剪刀布”游戏,我想将一个变量设置为大于另一个变量。
类似于:
paper > rock
scissors > paper
rock > scissors
我该怎么做...?
最佳答案
是的,正如丹尼尔所说,通过覆盖 __cmp__
你可以实现这个:
class Comparable(object):
def __init__(self, below_class, above_class):
self.above_class = above_class
self.below_class = below_class
def __cmp__(self, other):
if isinstance(other, self.below_class):
return 1
if isinstance(other, self.above_class):
return -1
return 0
class Paper(Comparable):
pass
class Rock(Comparable):
pass
class Scissors(Comparable):
pass
scissors = Scissors(Paper, Rock)
paper = Paper(Rock, Scissors)
rock = Rock(Scissors, Paper)
# True
print paper > rock
print scissors > paper
print rock > scissors
# False
print paper < rock
print scissors < paper
print rock < scissors
有关此工作方式的文档可在此处获得:https://docs.python.org/2.6/reference/datamodel.html#object.cmp
关于python - 如何在 Python 中设置一个变量大于另一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256828/