python - 如何在 Python 中设置一个变量大于另一个变量?

标签 python

我正在尝试用 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/

相关文章:

python - matplotlib 图例标签与 LaTeX 数学的垂直对齐

python - 开始 celery : AttributeError: 'module' object has no attribute 'celery'

python - 将我的离线绘图保存为本地 html 文件

python - 将高斯混合模型拟合到单个特征数据的正确方法是什么?

python - 在列表 : hashing complex objects in python 中查找近似匹配项

python - 使用 fnmatch 匹配的文件名

python - 为什么 mypy 在无法注释时提示列表理解?

python - 在两个二进制文件中查找匹配序列

python - Django 的多文件上传代码

python - 在 PyInstaller 中,为什么 NumPy.Random.Common 不能作为模块加载?