初学者求教,关于python,类定义完成没有实例就自己运行了?
这个代码写好了之后,完全自动运行让后关闭,为了查清楚在哪出问题 我又写了 一些print()进去 但是我学习的书上告诉我 类只有实例之后才能用 ,为啥我定义的类直接就自己运行了 就是写好的函数再没有调用之前也不可能自己运行吧?
程序代码:
from sys import exit from random import randint from textwrap import dedent print("从这里开始的?") class Engine(object): # 非得带object? Engine 意思是引擎 游戏的引擎 def __init__(self, fangjianming): self.name = fangjianming def play(self): dqcj = self.name.dakai() zzcj = self.name.xiayige('zuihou') while dqcj != zzcj: print("到这里了吗") xiagechangjing = dqcj.enter() # dqcj就是获得的类名字 用xingechangjing 来实例化 dqcj = self.name.xiayige(xiagechangjing) dqcj.enter() print("从这里开始的?1") class Fj1(): print("""这是第一个房间 这个房间你可以寻找到武器, 试着输入 xunzhao tuichu """) def enter(self): choice = input("输入提示让你输入的>>>>> ") if choice == "xunzhao": print("你找到了一把枪") return 'fj1' elif choice == "tuichu": print("你回到了走廊") return 'zoulang' else: print("你说的什么啊?") return 'fj1' print("从这里开始的?2") class Fj2(): print("""这是第二个房间 这个房间你可以寻找到炸弹, 试着输入 xunzhao tuichu """) def enter(self): choice = input("输入提示让你输入的>>>>> ") if choice == "xunzhao": print("你找到了一个炸弹") return 'fj2' # 这里完善的时候可以加一个判断,如果已经找到炸弹 炸弹类里面的属性变为真,则输出不能再找到炸弹 elif choice == "tuichu": print("你回到了走廊") return 'zoulang' else: print("你说的什么啊?") return 'fj2' print("从这里开始的?3") class Zoulang(): print("""这是一个走廊. 从这里你可以进入飞船上的房间, 试着输入 fj1 fj2 zoulang end """) def enter(self): choice = input("输入提示让你输入的>>>>> ") if choice == "fj1": print("你走到了房间1的门前,准备进入") return 'fj1' # 这里完善的时候可以加一个判断,如果已经找到炸弹 炸弹类里面的属性变为真,则输出不能再找到炸弹 elif choice == "fj2": print("你走到了房间2的门前,准备进入") return 'fj2' elif choice == "zuihou": print("你不想玩了") return 'zuihou' else: print("你说的什么啊?") return 'zoulang' print("从这里开始的?4") class zuizhong(): print("你完成了整个游戏") #exit(1) print("从这里开始的?5") class Map(object): mapname = { 'fj1': Fj1(), 'fj2': Fj2(), 'zoulang': Zoulang(), 'zuihou': zuizhong(), } print("这里你总要运转到吧") def __init__(self, start_name): self.start_name = start_name def xiayige(self, fangjianming): val = Map.mapname.get(fangjianming) return val print("1",val) def dakai(self): return self.xiayige(self.start_name) print("2",self.xiayige(self.start_name)) #a_test = Map('fj2') print("zheli?") #a_game = Engine(a_test) print("haishizheli?") #a_game.play print("zuihouzheli?")