注册 登录
编程论坛 Python论坛

菜鸟,问一下关于类的问题,麻烦大神帮帮忙

LanXX 发布于 2019-11-13 16:32, 1663 次点击
class Poker :
   def __init__(self,colour ,num):
      self.colour = colour
      self.num = num
   def __str__(self):
      return "{},{}".format(self.colour,self.num)
p1 = Poker("红桃","A")#类的实例化
p2 = Poker("黑桃","k")#类的实例化

#定义一个手得类
class Hand :
   def __init__(self,poker):
      self.poker = poker

left_hand = Hand(p1)
right_hand = Hand(p2)
print(left_hand.poker)

为什么打印left_hand.poker打印出'红桃','A',里面的逻辑我不太懂,为什么调用poker这个属性可以打印出来,有没有大神可以解答一下,谢谢,万分感谢!
3 回复
#2
fall_bernana2019-11-14 13:56
以下是引用LanXX在2019-11-13 16:32:07的发言:

class Poker :
   def __init__(self,colour ,num):
      self.colour = colour
      self.num = num
   def __str__(self):
      return "{},{}".format(self.colour,self.num)
p1 = Poker("红桃","A")#类的实例化
p2 = Poker("黑桃","k")#类的实例化

#定义一个手得类
class Hand :
   def __init__(self,poker):
      self.poker = poker

left_hand = Hand(p1)
right_hand = Hand(p2)
print(left_hand.poker)

为什么打印left_hand.poker打印出'红桃','A',里面的逻辑我不太懂,为什么调用poker这个属性可以打印出来,有没有大神可以解答一下,谢谢,万分感谢!


print(left_hand.poker) 相当于print(p1) , print会调用Poker 的__str__方法返回打印的字符串

#3
LanXX2019-11-14 17:24
回复 2楼 fall_bernana
谢谢老师,虽然还是没完全懂,但还是谢谢老师的指导!
#4
fall_bernana2019-11-15 09:48
回复 3楼 LanXX
https://bbs.bccn.net/thread-497646-1-1.html
这个和你这个问题有相通的地方
1