1. 程式人生 > >Python 跨類傳參與跨模組傳參

Python 跨類傳參與跨模組傳參

筆者初學python,編寫了一個小遊戲進行引數傳遞練習,文字描述部分稍顯簡陋,還請見諒,現將程式碼貼上。

Map.py

class master_bedroom():
    def __init__():    
        print 'The masterbedroom is large and beautiful. It is my mother\'s room,'
        print 'A large bed takes most of the space of the room. A ipad is lying'
        print 'on her bed. At the corner, a wooden door is closed.'
    
    def operation():
        while True:
            action = raw_input(">")
            if 'door' in action:
                return 'dinning_hall_saloon'
                break
            else:
                print 'do something.'
    
        
class dinning_hall_saloon():
    
    def __init__():
        print 'The dinning hall is the place we have meal everyday.On the table,'
        print 'there are many items, such as wine ,egg, tea....There are three doors'
        print 'here. #1door leads to schoolroom, #2door leads to deputy bedroom, #3door'
        print 'leads to the upstair, and #4door leads to the master bedroom.'

    def operation():
        while True:
            action = raw_input()
            if 'open #1door' in action:
                return 'schoolroom'
                break
            elif 'open #2door' in action:
                return 'deputy bedroom'
                break
            elif 'open #3door' in action:
                return 'upstair'
                break
            elif 'open #4door' in action:
                return 'master_bedroom'
                break
            else:
                print 'you cannot do that.'

def schoolroom():
    def __init__():  
        print 'the schoolroom is large and beautiful.There are some flowers on the desk. Nearing the flowers'
        print 'is a plane model made by me when I was young.a door here.'

    def operation():
        while True:
            action = raw_input(">")
            
            if 'door' in action:
                return 'dinning_hall_saloon'
                break
            else:
                print 'You cannot do that.'

class deputy_room():
    def __init__():
        print 'It is my bedroom. A iphone and a pair of earphone is on my bed. Nearing my bed is a door.'

    def operation():
        while True:
            action = raw_input(">")
            if 'door' in action:
                return 'dinning_hall_saloon'
                break
            else:
                print 'You cannot do that.'

class upstair():
    def __init__():
        print 'It is a long upstair leads to two doors, #1door and #2door.'

    def operation(): 
        while True:
            action = raw_input(">")
            if 'open #1door' in action:
                return 'garden'
                break
            elif 'open #2door' in action:
                return 'sunroom'
                break
            else:
                print 'You cannot do that.'

class sunroom():
    def __init__():
        print 'It is my father\'s room. He is always enjoying all kinds of video shows on computer.'
        print 'a book named the song of ice and fire is on the desk and a computer is in front of the bed.'
        print 'next the bed is a door.'

    def operation():
        while True:
            action = raw_input(">")
            if 'door' in action:
                return 'upstair'
                break
            else:
                print 'You cannot do that.'

class garden():   
    def __init__():
        print 'The garden is my parents favorite place to enjoy their spare time.'
        print 'There are many vegetable here, such as cabbage and onion. There is a small pool here.'
        print 'many fish in it. Nearing the small pool is a door.'

    def operation():
        while True:
            action = raw_input(">")
            if 'open door' in action:
                return 'upstair'
                break
            else:
                print 'You cannot do that.'
engine.py
from Map_class import *

class Game():  #構建遊戲類
    def __init__(self, start):  #建立初始化方法,對起點名稱進行賦值
        self.start = start
        self.mybag = {}
        
    def game_play(self):  #建立game_play方法
        self.ROOMS = {
                 "master_bedroom":MasterBedroom,
                 "dinning_hall_saloon":DinningHallSaloon,
                 "schoolroom":SchoolRoom,
                 "deputy_room":DeputyRoom,
                 "upstair":Upstair,
                 "sunroom":SunRoom,
                 "garden":Garden,
                 }  #建立ROOMS類,將以上類跨指令碼以字典的方式彙總方便呼叫

        self.next_ = self.start
        #對字典中的類,進行呼叫
        while True:
            self.room = self.ROOMS[self.next_]
            self.next_ = self.room().operation()

a = Game('master_bedroom')
a.game_play()
            

from Map import *
class Game():  #構建遊戲類
    def __init__(self, start):  #建立初始化方法,對起點名稱進行賦值
        self.start = start
        self.mybag = {}
        
    def game_play(self):  #建立game_play方法
        self.ROOMS = {
                 "master_bedroom":MasterBedroom,
                 "dinning_hall_saloon":DinningHallSaloon,
                 "schoolroom":SchoolRoom,
                 "deputy_room":DeputyRoom,
                 "upstair":Upstair,
                 "sunroom":SunRoom,
                 "garden":Garden,
                 }  #建立ROOMS類,將以上類跨指令碼以字典的方式彙總方便呼叫

        self.next_ = self.start
        #對字典中的類,進行呼叫
        while True:
            self.room = self.ROOMS[self.next_]
            self.next_ = self.room().operation()

a = Game('master_bedroom')
a.game_play()

測試目的:

練習跨類傳參與跨指令碼傳參。

注意事項:

跨模組傳參可以使用字典對副模組的類進行彙總,方便主模組呼叫。


相關推薦

Python 參與模組

筆者初學python,編寫了一個小遊戲進行引數傳遞練習,文字描述部分稍顯簡陋,還請見諒,現將程式碼貼上。 Map.py class master_bedroom(): def __init__(): print 'The masterbed

自定義介面內部類的一個簡單的使用(值)

實現使用介面內部類進行跨類傳值 定義一個普通的Java類: package com.example.shiyan; public class haitao { private static haitao instance; hh

自定義介面內部類的兩個具體應用(值)

個人理解,Android開發中的介面內部類和 C#中委託和事件的作用是一樣的 觸發某類中定義的事件後,會執行所有繫結到這個事件上的方法,這些方法在其它不同的類中 例子一: 例子二:(使用自定義介面內部類實現主Acti

模組引數的教訓

今天遇到一個比較奇怪的crash問題,這裡記錄下。這個crash是由QA設定了一些不合理的引數引起的,還好QA當時儲存了Dump檔案,讓我們可以慢慢分析,從而找出程式碼中隱藏的問題。    這裡先簡單介紹下ATL/WTL裡字串的設計:(1)每個CString都有自己的串頭(內含引用計數,資料長度,

Ajax--數,csrf站請求偽造,serialize(),上文件formdata

chrome true multi 編碼格式 token static error res files https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js. 一:參數,processData,conten

Python函數中多值和冗余數及函數的遞歸調用

rgb {} rgs fun mini eight 分享圖片 not strong 1.多類型傳值和冗余參數多類型傳值: def fun(x,y): return x +y print fun(3,5) 8 print fun(*t)

springMvc---服務器文件上(實測總結)

options color mon alt EDA and serve rip dom 序言:   該案例是采用springMvc實現跨服務器圖片上傳功能,其中用到的主要類和工具有:CommonsMultipartResolver、jquery.form.js。如果要實現

ajax2.0之文件上

parent nts onload nbsp res get The 請求 utf express_server.js const express=require(‘express‘); //主體 const body=require(‘body-parser‘)

關於使用百度編輯器(ueditor編輯器)域上將圖片上到獨立伺服器的問題

最近公司要使用ueditor編輯器,但是關於跨域上傳的問題,出現了很多不可預料的錯誤,一次次的除錯,一個個的坑,現在終於完成了,把過程寫下來分享給大家,希望大家支援,因為我在百度上查了很久,也沒有找到一個合適的。 首先本地使用ueditor編輯器,這個自己百度,這裡就不多說

Thread 執行緒

Thread t1 = new Thread(() => ThreadRun(tr,rt)); t1.Start(); private void ThreadRun(TreeView tr,

vue之 域請求代理與axios

一:跨域請求代理1:開啟config/index.jsmodule.exports{ dev: { } }在這裡面找到proxyTable{},改為這樣:proxyTable: { '/api': { target: 'http:/

Vue專案整合ueditor。解決圖片上域問題

1:下載ueditor下來,放在vue專案中的static資料夾下2:建立ueditor編輯介面3:椰~~~~~此時已經可以使用了但是你會發現(黑人臉)what the fuck??????????看下面    如果你只是搞前端介面,那就到此結束不用往下看了,剩下的是給苦逼後

圖片上域問題的幾種解決方案和細節及優缺點

方案一 傳到前端伺服器本地,然後用伺服器跨域 ajaxSubmit方式,需要jquery.form.min.js外掛 $("#imgUploadForm").ajaxSubmit({ type: "POST",//提交型別 dataType: "json"

stream外掛域大檔案斷點續實戰+自定義限速

JAVA跨域大檔案斷點續傳+自定義限速 前言:本文所講到的內容完全獨創,遇坑很多,但是本著資源共享的原則,將兩個星期的成果分享給大家,請尊重別人的勞動成果,轉載請註明出處:http://blog.c

python中將給函式,在函式中修改的值的問題

說得具體點可以把python的變數理解成一個名字指向實際的值,在傳到函式裡的時候, 是告訴函式的變數名字也指向我的這個值,但是並不是我自己傳到函式內 比如foo = [1,2,3] 可以理解成為foo指向[1,2,3],foo和[1,2,3]並不是在一起 現在有個函式 def alter(bar):

解決ueditor域請求時圖片上不了及圖片列表回顯路徑問題

可跳過直接看後面的重點 1、測試環境:  1. 後端部署 基於Win10+Wampserver64  2

系列五、springMVC實現檔案上伺服器上檔案

一、實現檔案上傳 專案目錄如下所示 一、匯入依賴和配置springmvc.xml、web.xml 這個兩個jar

net core WebApi——檔案分片上域請求處理

目錄 前言 開始 測試 跨域 小結 @ 前言 在之前整理完一套簡單的後臺基礎工程後,因為業務需要鼓搗了檔案上傳跟下載,整理完後就迫不及待的想分享出來,希望有用到檔

真正解決百度編輯器UEditor上圖片域問題

做前後端分離的專案用到UEditor,把上傳圖片程式拿出來放到了介面程式中,上傳圖片介面已經做了跨域處理,按理說編輯器中上傳圖片應該不會有問題。可是配置好圖片上傳路徑後,執行,開啟除錯,測試一下,報錯了:  找到上傳圖片的程式碼,發現引用的是webuploader.js,先修改下,直接引用web

C#中的方法參與switch、if結構(4)

判斷 1.2 菱形 條件表達式 執行 代碼 輸出 分類 簡易 一、方法傳參的2種方式    1、按值傳遞       傳遞的是值的副本,值會更改但未保留,值最終並未更改     2、按引用傳遞(形參用ref關鍵字修飾)【P86頁】 傳遞的是地址,值會更改且保留,值最終更改