我正在尝试用Python创建一个"摇滚,纸张,剪刀"游戏,我想将一个变量设置为大于另一个变量.
就像是:
paper > rock
scissors > paper
rock > scissors
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做..?
是的,丹尼尔说,超越__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
Run Code Online (Sandbox Code Playgroud)
有关其工作方式的文档,请访问:https://docs.python.org/2.6/reference/datamodel.html#object.CMP
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |