鱼C论坛

 找回密码
 立即注册
查看: 1026|回复: 1

关于python小程序 一直报错

[复制链接]
发表于 2019-4-5 23:25:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一个笨办法学python 里面的一个例题

  1. # -*- coding: utf-8 -*-


  2. # map地图
  3. #---next Scene  下一个场景
  4. #---oprnung secne  进入一个场景
  5. # Engine 引擎
  6. # ---play
  7. # Scene    场景
  8. # ---enter  
  9. # ---Death  死亡场景
  10. # ---Central Corridor中央走廊场景
  11. # ---Laser weapon Armory 激光武器库
  12. # ---The Bridge  主控舱
  13. # ---Escape pod 救生舱

  14. class Scene(object):
  15.        
  16.         def enter(self):
  17.                 print('这个场景还没有建立')
  18.                 exit(1)
  19.                
  20. class Engine(object):
  21.        
  22.         def __init__(self,scene_map):
  23.                 self.scene_map = scene_map   #Map("central_corridor").
  24.                
  25.         def play(self):
  26.                 current_scene = self.scene_map.opening_scene()  #Centralcorridor()
  27.                
  28.                 while True:
  29.                         print('------------\n')
  30.                         next_scene_name = current_scene.enter()
  31.                         current_scene = self.scene_map.next_scene(next_scene_name)
  32.                        
  33. class Death(object):
  34.        
  35.         def enter(self):
  36.                 print"""
  37.                         11111111111111111111
  38.                 """
  39.                 exit(1)
  40.                
  41. class Centralcorridor(Scene):

  42.         def enter(self):
  43.                 print"""
  44.                         11111111111111111111
  45.                 """
  46.                 result = raw_input("请输入选择:")
  47.                
  48.                 if result == A:
  49.                         print"""
  50.                                 11111111111111111111
  51.                         """
  52.                         return 'death'
  53.                 elif result == B:
  54.                         print"""
  55.                                 11111111111111111111
  56.                         """
  57.                        
  58.                         return "laser_weapen_armory"
  59. class LaserWeaponArmory(Scene):   
  60.                
  61.         def enter(self):
  62.                 print'''
  63.                         11111111111111111111'''
  64.                
  65.                 choose = raw_input('左?右?:')
  66.                
  67.                 if choose == '左':
  68.                         print'''         11111111111111111111'''
  69.                         return 'death'
  70.                        
  71.                 elif choose == '右':
  72.                         print'''
  73.                                 11111111111111111111
  74.                         '''
  75.                         return 'the_bridge'       
  76. class Thebridge(Scene):

  77.         def enter(self):
  78.                 print'''
  79.                         11111111111111111111
  80.                         '''
  81.                
  82.                 choose = raw_input(">:")
  83.                
  84.                 if choose == A:
  85.                         print'''
  86.                                 11111111111111111111
  87.                         '''
  88.                         return 'escape_pod'
  89.                        
  90.                 elif choose == B:
  91.                         print'''
  92.                                 11111111111111111111
  93.                         '''
  94.                         return 'death'
  95.                        
  96. class EscapePod(Scene):
  97.        
  98.         def enter(self):
  99.                 print'''
  100.                         11111111111111111111
  101.                 '''
  102.                 exit(1)
  103. class Map(object):
  104.        
  105.         scene = {'Central_Corridor':Centralcorridor(),
  106.                         'laser_weapen_armory':LaserWeaponArmory(),
  107.                         'the_bridge':Thebridge(),
  108.                         'escape_pod':EscapePod(),
  109.                         'death':Death()}
  110.                        
  111.         def __init__(self,start_scene):
  112.                 self.start_scene = start_scene
  113.        
  114.         def next_scene(self,scene_name):
  115.                 return Map.scene.get(scene_name)
  116.                
  117.         def opening_scene(self):
  118.                 return self.next_scene(self.start_scene)
  119.                
  120.                
  121. a_map = Map('central_corridor')
  122. a_game = Engine(a_map)
  123. a_game.play()
复制代码


一直报出错误
------------

Traceback (most recent call last):
  File "25号星人.py", line 169, in <module>
    a_game.play()
  File "25号星人.py", line 33, in play
    next_scene_name = current_scene.enter()
AttributeError: 'NoneType' object has no attribute 'enter'

为什么是空类型没有erter()这个
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-6 01:33:19 | 显示全部楼层
意思是这个字段"current_scene"目前是空,没有任何意义,不能调用 .enter()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-15 02:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表