python学习08——类

笨办法学python第42节,这节讲的是类,程序沿用上一节中一个游戏,不同的是这一节用了类的方法。

其中改动的代码主要如下

原来的最后几句用了这样的代码:

ROOMS = {
    'death':death,
    'central_corridor':central_corridor,
    'laser_weapon_armory':laser_weapon_armory,
    'the_bridge':the_bridge,
    'escape_pod':escape_pod
}

def runner(map,start):
    next = start

    while True:
        room = map[next]
        print "\n---------"
        next = room()

runner(ROOMS, 'central_corridor')
 

运行时从这一句 runner(ROOMS, 'central_corridor')开始,主要的函数是def runner()
现在的代码将这一段主要的函数放在了类里面。

class Game(object):

    def __init__(self, start):    //首先调用了是这个构造函数。
        self.quips = [
            "You died. You kinda suck at this.",
            "Nice job, you died...jackass.",
            "Suck a luser.",
            "I have a small puppy that's better at this."
        ]
        self.start = start    //这一句就是说把"central_corridor"赋给self.start

    def play(self):
        next = self.start     //这一句就是说把self.start赋给next,这时next就是"central_corridor"

        while True:
            print "\n--------"
            room = getattr(self,next)  //getatr是python的一个方法,左边参数是某个类,右边参数是这个类里面的方法或者值,返回的是右边的
            next = room()

    def death(self):
        print self.quips[randint(0,len(self.quips)-1)]
        exit(1)

代码的最后:

a_game = Game("central_corridor")  //Game("central_corridor")是构造函数,调用第7行,初始化
a_game.play()

我直接把注释写在了后面方便看,这样写是错误的

 

 

 

转载于:https://www.cnblogs.com/EiffelRachel/p/5950870.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值