现在想想大男孩是怎么做的/ <强> </p>
<blockquote>
<p>add a < and > operator over-loader in your classes that you are trying to compare</p>
</blockquote>
<p>对于<;在类中添加<code>__lt__()</code>方法</p>
<p>对于>;在类中添加<code>__gt__()</code>方法</p>
<p>那些<code>__lt__()</code>和<code>__gt__()</code>将执行运算符的重载</p>
<p>**(重载是指自定义使用的编程运算符)**</p>
<blockquote>
<p>In your code you need to add them in <strong>class Card</strong> and <strong>class Person</strong></p>
</blockquote>
<pre><code>class Card(object):
def __init__(self, suit, value):
self.suit = suit
self.value = value
def __gt__(self, comparing_card):
# result is gonna be a boolean value
# the ace jack qween king will need some comparing basis
# work on it
result = self.value > comparing_card.value
return result
def __lt__(self, comparing_card):
result = self.value < comparing_card.value
return result
def show(self):
print ("{} of {}".format(self.value, self.suit))
</code></pre>
<p>还有一节课</p>
<pre><code>class Person(object):
def __init__(self):
self.hand = []
def __gt__(self, comparing_obj):
# result is gonna be a boolean value
result = self.hand[-1] > comparing_obj.nextcard[-1]
return result
def __lt__(self, comparing_obj):
# result is gonna be a boolean value
result = self.hand[-1] < comparing_obj.nextcard[-1]
return result
def draw(self, deck):
self.hand.append(deck.drawCard())
return self
def show(self):
for card in self.hand:
card.show()
</code></pre>
<p>这是比较类的最后一个片段</p>
<pre><code> # here we need oparator overloading
# this initially means '> sign' will call card.__gt__(nextCard)
# > sign will call card's ___gt__ method and pass nextCard as a parameter
# ___gt__(nextCard) returns a boolean value that we feed to the if statement down there
if card > nextCard:
# in here the print shows the class node
print("Congratulations! You guessed correctly! The next card was ", card)
# change card to card.show()
play = input("Play again? Y or N? ")
</code></pre>
<p>这是一个非常深刻的主题(如果很难理解的话)和中间的python内容。你可以尝试一些网上的东西来简单了解一下</p>
<p>尝试以下“极客换极客”教程:</p>
<p><a href="https://www.geeksforgeeks.org/operator-overloading-in-python/" rel="nofollow noreferrer">https://www.geeksforgeeks.org/operator-overloading-in-python/</a></p>