大家好今天學習9.4.6 在一個模塊中導入另一個模塊 。今天我們繼續學習python。馬上類就學完了。
喜歡python就關注冠山巡山使。 我將跟大家一塊自學完python語言。
9.4.6 在一個模塊中導入另一個模塊
有時候,需要將類分散到多個模塊中,以免模塊太大,或在同一個模塊中存儲不相關的類。
將類存儲在多個模塊中時,你可能會發現一個模塊中的類依賴于另一個模塊中的類。在這種情況
下,可在前一個模塊中導入必要的類。
例如,下面將Car類存儲在一個模塊中,并將ElectricCar和Battery類存儲在另一個模塊中。
我們將第二個模塊命名為electric_car.py(這將覆蓋前面創建的文件electric_car.py),并將Battery和ElectricCar類復制到這個模塊中:
electric_car.py
代碼1(類代碼)
"""一組可用于表示電動汽車的類"""from car import Carclass Battery():"""定義一個電瓶的類"""def __init__(self,battery_size=70):"""初始化電瓶的容量"""self.battery_size=battery_sizedef describe_battery(self):print("這個電瓶容量是"+str(self.battery_size)+"千瓦")def get_range(self):"""打印一條消息,指出電瓶的續航里程"""if self.battery_size==70:range=240elif self.battery_size==85:range=270message="這個汽車大概能開"+str(range)message="充滿電后的續航里程"print(message)class ElectricCar(Car):"""我們定義了子類ElectricCar,并指定父類的名稱Car""""""電動汽車的獨特之處初始化父類的屬性,再初始化電動汽車特有的屬性"""def __init__(self,make,model,year):"""初始化父類屬性"""super().__init__(make,model,year)self.battery=Battery()def fill_gas_tank():"""定義一個汽車沒有郵箱方法"""print("這兩汽車沒有郵箱")
代碼多折疊了代碼
ElectricCar類需要訪問其父類Car,因此在?處,我們直接將Car類導入該模塊中。如果我們
忘記了這行代碼, Python將在我們試圖創建ElectricCar實例時引發錯誤。我們還需要更新模塊
car,使其包含Car類:
car.py
代碼2(代碼類)
"""一個可用于表示汽車的類"""class Car():"""一次模擬汽車的簡單嘗試"""def __init__(self, make, model, year):"""我們定義了方法__init__()里面有四個形參""""""初始化描述汽車的屬性"""self.make= make """定義變量品牌"""self.model= model"""定義變量型號"""self.year= year"""定義變量生產日期"""self.odometer_reading=0"""添加一個名為odometer_reading的變量屬性值為0"""def get_descriptive_name(self):"""定義get這個方法""""""返回整潔的描述性信息"""long_name= str(self.year)+ ' ' + self.make + ' ' +self.modelreturn long_name.title()def read_odometer(self):"""添加read_odometer方法""""""打印一條指出汽車里程的消息"""print("這個車輛有"+ str(self.odometer_reading) +"公里")def update_odometer(self,mileage):"""將里程表讀數設置為指定的值""""""將里程表讀數設置為指定的值禁止將里程表讀數往回調"""if mileage>=self.odometer_reading:"""如果行駛里程數>=里程表讀數"""self.odometer_reading=mileage"""行駛里程數就可以賦值給里程表"""else:"""如果不是"""print("這個車的里程表"+ str(mileage) +"不能往回調")"""就打印出這個車的里程表不能往回調"""def increment_odoment(self,miles):""""將里程表讀數增加指定的量"""self.odometer_reading += miles
代碼多我折疊了代碼了
現在可以分別從每個模塊中導入類,以根據需要創建任何類型的汽車了:
my_cars.py
代碼3(代碼測試正常)
"""新代碼1"""from car import Carfrom electric_car import ElectricCar """新代碼1"""my_beetle=Car('大眾','甲殼蟲',2016)print(my_beetle.get_descriptive_name())my_tesla=ElectricCar('特斯拉','ms',2020)print(my_tesla.get_descriptive_name())
在新代碼1處,我們從模塊car中導入了Car類,并從模塊electric_car中導入ElectricCar類。接下
來,我們創建了一輛普通汽車和一輛電動汽車。這兩種汽車都得以正確地創建:
2016 大眾 甲殼蟲2020 特斯拉 Ms
9.4.7 自定義工作流程
正如你看到的,在組織大型項目的代碼方面, Python提供了很多選項。熟悉所有這些選項很
重要,這樣你才能確定哪種項目組織方式是最佳的,并能理解別人開發的項目。
一開始應讓代碼結構盡可能簡單。先盡可能在一個文件中完成所有的工作,確定一切都能正
確運行后,再將類移到獨立的模塊中。如果你喜歡模塊和文件的交互方式,可在項目開始時就嘗
試將類存儲到模塊中。先找出讓你能夠編寫出可行代碼的方式,再嘗試讓代碼更為組織有序。
因為后面代碼篇幅比較大。大家看起來也不便。所以自學教程我會分割的比較多些。類還有幾小節就學完了。
今天我們終于把類學完了。明天學習 Python 標準庫
如果喜歡可以 點贊+關注冠山巡山使 or 評論+轉發此文章讓其他喜歡Python的同學看到吆 。明天見!
關注冠山巡山使+私信:“編輯器”三個字 就可以有這個編輯器的下載地址了。關注冠山巡山使+私信:“自學python”可以下載此教程!(我是參考此教程做的自學課程。大多數人兒只是下載下來。看完的很少。希望能跟我一塊自學完!)
總結
以上是生活随笔為你收集整理的python 调用另一个py_跟我自学python 第9章 类(9.4.6 在一个模块中导入另一个模块)...的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。