笨办法学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()

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

 

python学习08——类的更多相关文章

  1. Python学习:类和实例

    Python学习:类和实例 本文作者: 玄魂工作室--热热的蚂蚁 类,在学习面向对象我们可以把类当成一种规范,这个思想就我个人的体会,感觉很重要,除了封装的功能外,类作为一种规范,我们自己可以定制的规 ...

  2. Python学习笔记——类和对象

    类和对象 1. 一个例子 # 对象 = 属性 + 方法 # Python 中的类名称约定首字母大写,而 Python 函数名首字母小写 class Turtle: #属性 color = 'green ...

  3. python学习19类5之多态与鸭子模型

    '''''''''一.多态1.Python中多态是指一类事物有多种形态.''' class Animal: def run(self): raise AttributeError('子类必须实现这个方 ...

  4. Python学习-day7 类 部分socket

    这周还是继续关于类的学习,在面向对象的学习过程中又学习了网络编程,并且提交了编写FTP的作业. 复习一下类的相关概念和定义 类      属性           实例变量:内存中           ...

  5. Python学习_11_类和实例

    类和实例 类是对象创建实例的模板,而实例则是对象的实体.类使用class关键字定义: class MyClass:    pass python中创建实例直接使用工厂函数(类名加上一对括号),和其他的 ...

  6. python学习08

    python中的异常处理 1.格式 try 语句块 except else finally else 是如果try语句没有异常,就执行,否则不执行 finally 不管程序是否异常,都会执行. 2.异 ...

  7. 廖雪峰Python学习笔记——类和实例

    Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...

  8. Python学习--08函数式编程

    函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数. 高阶函数 Python支持高阶函数(Higher-order function). 什么是高阶函数呢?把函数作为参 ...

  9. python学习-- class 类中需要注意的地方

    from django.db import models class Person(models.Model):     name = models.CharField(max_length=30) ...

随机推荐

  1. 微信web开发者工具

    http://mp.weixin.qq.com/wiki/10/e5f772f4521da17fa0d7304f68b97d7e.html#.E4.B8.8B.E8.BD.BD.E5.9C.B0.E5 ...

  2. Github的命令清除

    最近折腾Github,对于我这个英语词汇量不多的人来说就是折磨,几乎是翻着字典探索的. 功能上就不多说了,还没发现新东西,只是刚摸索出如何上传(下载还没弄明白了,苦啊....) 就是在使用GitBas ...

  3. shmop ftok

    http://blog.csdn.net/heiworld/article/details/25426723     对于ftok的理解 http://www.jb51.net/article/510 ...

  4. Arduino 极速入门系列–1 点亮 LED

    本篇内容为,使用 Arduino 点亮 LED 的做法示范.很简单的一个入门示范.我们让 LED 闪. 本篇使用到的工具和材料 Arduino Mini Pro 1 PCS Mini USB 数据线 ...

  5. 1010. Radix (25)(未完成)

    Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...

  6. Java动态代理与Cglib库

    JDK动态代理 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在 ...

  7. IT关键词,发现与更新,点成线,线成面,面成体

    时序图 1.什么是时序图 2.如何看懂时序图 3.时序图的作用 4.如何绘制时序图 分布式 一个业务分拆多个子业务,部署在不同的服务器上. 分布式是指将不同的业务分布在不同的地方. 而集群指的是将几台 ...

  8. ROS学习笔记(六)——创建、编译包

    $ cd ~/catkin_ws #如果新开一个终端,就需要先吧ROS的工作空间配置好 $ source devel/setup.bash #工作空间的环境配置 #正式开始创建包 $ catkin_c ...

  9. Java类中中文问题

    一个奇怪问题 java类中要保存一个xml文件到数据库,2种传值方式其中1种不知何故会最终导致解析xml时报错. xml文件内容由StringBuffer定义,其中一段内容如下: sb.append( ...

  10. Matrix

    记载: Matrix Matrix是Android 提供的一个矩阵工具类,位于"android.graphics.Matrix"包下,它本身不能对图像或View进行变换, 但它可以 ...