使用Python實現一個小型的航空訂票系統(3)
下面說一說其中碰到的問題,首先便是這裡剛開始搞不清楚是傳引用還是傳物件.(我不知道這樣說是否合理,但是按照c++的角度來看待我覺得會簡單一點),我在航空公司那個類中有關於航班的列表,那麼如果我把某個航班物件append到這個列表中時,如果以後那個航班物件發生了改變,那麼相應的公司列表中的那個會不會發生改變呢?同樣的疑問也出現在了航班物件中的seat列表以及customer的seat列表.後來簡單的試驗了一下,發現是會改變的,這就是傳引用.實際上在簡明python中這樣說到:
當你建立一個物件並給它賦一個變數的時候,這個變數僅僅 參考 那個物件,而不是表示這個物件本身!也就是說,變數名指向你計算機中儲存那個物件的記憶體。這被稱作名稱到物件的繫結。
其實陣列中存放的也是那個物件的地址,我想這和java中的是一樣的,除了基本資料型別.比如:
a = 0
b = a
a =9
這個時候a為多少b為多少呢?b會不會隨著a的變化而變化呢?答案是不會
再如:
a = 'a'
b= a
a = 'b'
但是如果這樣寫:
class A:
def __init__(self):
self.name = ''
a = A()
b = a
a.name = "nihao"
print b.name
結果為nihao
這說明非基本型別都是傳的引用.再比如這樣一個程式,
fun(a):
a = 0
a = 9
fun(a)
print a
答案還是9這說明python在這方面和java是一至的
第二個問題,是程式碼結構問題,我將他抽象為下面這種形式:
class A:
def __init__(self,mlist = []):
self.mylist = mlist
class B:
def __init__(self):
self.P = None
def setList(self,a):
self.P = a
a.mylist.append(self)
a1 = A()
a2 = A()
b1 = B()
b2 = B()
b1.setList(a1)
b2.setList(a1)
print a1.mylist
print a2.mylist
列印的結果會使我大吃一驚.....至今沒想通為什麼.........想看的話可以自己執行一下.......知道的一定要評論告訴我阿大神們!!!!!跪了!!!!
相關文章
- 使用Python實現一個小型的航空訂票系統(1)Python
- python實現一個無介面的小型圖書管理系統Python
- 建設一個靠譜的火車票網上訂購系統
- AccountSystem 一個小型庫存管理系統
- Java+SpringBoot+vue+element實現火車訂票平臺管理系統JavaSpring BootVue
- Java語言多執行緒實現一個火車站賣票系統Java執行緒
- 實現一個SSO系統
- 協同過濾實現小型推薦系統
- Python3實現搶火車票功能(下)Python
- java電影院訂票選座系統ssm框架JavaSSM框架
- 線上電影訂票系統 - 資料庫建模資料庫
- 線上電影訂票系統 - Vue學習心得Vue
- 12306火車票訂票系統的伸縮擴充套件套件
- JN專案-app首頁訂票功能實現APP
- 實現一個webscoket聊天系統Web
- 使用Javascript實現小型區塊鏈JavaScript區塊鏈
- 【小型系統】抽獎系統-使用Java Swing完成Java
- SAP CRM系統訂單模型的設計與實現模型
- python的flask框架實現的小型二手商城PythonFlask框架
- 如何使用CSS3實現一個3D相簿CSSS33D
- 一張OM訂單(同一ITEM)要生成多個AR發票
- 使用Python建立一個系統監控程式Python
- 實現一個簡易的響應式系統
- 使用css3實現一個斑馬線的效果CSSS3
- 如何實現一個簡單的釋出訂閱模式模式
- 一次訂單系統重構實踐
- SpringBoot+MongoDB實現物流訂單系統Spring BootMongoDB
- 決解小型實體店微信收款系統
- 解密《一個作業系統的實現》這本書解密作業系統
- JN專案-app活動中的觀展聆聽列表訂票功能實現APP
- Kafka與ELK實現一個日誌系統Kafka
- JavaScript 如何實現一個響應式系統JavaScript
- sh005基於springboot的景區訂票系統【帶LW文件】Spring Boot
- 探索型別系統的底層 - 自己實現一個 TypeScript型別TypeScript
- 純JavaScript實現一個帶cookie的學生管理系統JavaScriptCookie
- 使用D3.js+Vue實現一個簡單的柱形圖JSVue
- 使用版本控制系統的 3 個建議
- 一個作業系統的設計與實現——第23章 快速系統呼叫作業系統