[英]What is the purpose of printing self?
我正在閱讀在 python 中使用 OOP 實現二十一點游戲的源代碼,我看到了這個:
print(self)
它的用途是什么?
ps 如您所知,下面的代碼是類的一部分
def main(self):
while True:
print()
print(self)
player_move = self.player.hit_or_stick()
if player_move is True:
self.deal_card(self.player)
self.calculate_score(self.player)
elif player_move is False:
self.dealer_hit()
這是str實現:
def __str__(self): # this is just for checking progress during programming
dealer_hand = [card for card, value in self.dealer.hand]
player_hand = [card for card, value in self.player.hand]
print("Dealer hand : {}".format(dealer_hand))
print("Dealer score : {}".format(self.dealer.score))
print()
print("{}'s hand : {}".format(self.player.name, player_hand))
print("{}'s score : {}".format(self.player.name, self.player.score))
print()
print(("{}'s current bet: {}.".format(self.player.name, self.player.bet)))
print("{}'s current bank: {}.".format(
self.player.name, self.player.funds))
print("-" * 40)
return ''
在 Python 中,類可以實現__str__()
和__repr__()
函數。 這些被稱為 dunder 函數或魔術方法。 當你在任何東西上調用print()
時,你實際上是在那個對象的__str__()
/ __repr__()
函數上調用 print 。
這樣做的重要性在於您可以創建一個類:
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return self.name
def __repr__(self):
return self.__str__()
然后您可以實例化並打印該類。
matt = Person('Matt')
print(matt) # >>> 'Matt'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.