python 类与对象练习题_python类与对象练习题扑克牌

本文通过创建Poker、Hand和Person类,展示了Python中类与对象的使用,包括属性定义、对象实例化及方法实现。通过交换扑克牌在左右手中的位置,加深了对对象引用的理解。
摘要由CSDN通过智能技术生成

#定义一个扑克类,属性是颜色,数字。

#定义一个手类,属性是扑克牌得颜色数字

#定义一个人类,属性是左手,右手。类里定义一些方法,比如交换,展示

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)

#定义一个人的类

class Person :

def __init__(self,left_hand ,right_hand):

self.left_hand = left_hand

self.right_hand = right_hand

def show_hand(self):

print(self.right_hand.poker,self.left_hand.poker)

def swap_hand(self):

self.left_hand.poker,self.right_hand.poker = self.right_hand.poker,self.left_hand.poker

xiaoming = Person(left_hand,right_hand)

xiaoming.show_hand()

xiaoming.swap_hand()

xiaoming.show_hand()

总结,里面的变量只是一个变量,形参是变量,对象也是变量。当你将一个对象作为一个参数传入另外一个类中的时候,才会发生关系。给大家一个改良版的,加强大家理解。

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,pai):

self.paipai = pai

left_hand = Hand(p1)

right_hand = Hand(p2)

#定义一个人的类

class Person :

def __init__(self,bianliang ,suibian):

self.zuoshou = bianliang

self.youshou = suibian

def show_hand(self):

print(self.youshou.paipai,self.zuoshou.paipai)

def swap_hand(self):

self.zuoshou.paipai,self.youshou.paipai = self.youshou.paipai,self.zuoshou.paipai

#xiamian de left_hand riaht_hand 是Hand的对象哦。

xiaoming = Person(left_hand,right_hand)

xiaoming.show_hand()

xiaoming.swap_hand()

xiaoming.show_hand()

同学们仔细对比一下,仔细体会一下,就是说类的属性,原来是空白的,只有你给她传进去 一个具体的之后,它才实例化。传之前,类的属性函数_init_里面的参数,只是一个变量。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值