Python編程從入門到實踐筆記——類
阿新 • • 發佈:2018-11-24
其他 兩個 electric 類名 默認 實例名 9.1 自己 約定
Python編程從入門到實踐筆記——類
#coding=gbk #Python編程從入門到實踐筆記——類 #9.1創建和使用類 #1.創建Dog類 class Dog():#類名首字母大寫 """一次模擬小狗的簡單嘗試""" def __init__(self,name,age): """初始化屬性name和age""" self.name = name self.age = age def sit(self): """模擬小狗被命令時蹲下""" print(self.name.title() + "is now sitting.") def roll_over(self): """模擬小狗被命令時打滾""" print(self.name.title() + " rolled over!") #__init__()是一個特殊的方法,每當根據Dog類創建新實例時,Python都會自動運行它。 #在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免Python默認方法與普通方法發生名稱沖突。 #方法__init__()定義成了包含三個形參:self、name和age。在這個方法的定義中,形參self必不可少,還必須位於其他形參的前面。#Python調用這個__init__()方法來創建Dog實例時,將自動傳入實參self。每個與類相關聯的方法調用都自動傳遞實參self,它是一個指向實例本身 #的引用, 讓實例能夠訪問類中的屬性和方法。 我們創建Dog 實例時,Python將調用Dog類的方法__init__() 。 #我們將通過實參向Dog()傳遞名字和年齡;self會自動傳遞,因此我們不需要傳遞它。每當我們根據Dog類創建實例時,都只需給最後兩個形參(name 和age )提供值。 #2.根據類創建實例 my_dog = Dog(‘willie‘,6) print("My dog‘s name is " + my_dog.name.title() + "and he is "+ str(my_dog.age) + " years old.") #訪問屬性 . my_dog.name #調用方法 my_dog.sit() #創建多個實例 my_dog = Dog(‘willie‘,6) your_dog = Dog(‘lucy‘,7) #9.2使用類和實例 #1.Car類 class Car(): """一次模擬汽車的簡單嘗試""" def __init__(self, make, model, year): """初始化描述汽車的屬性""" self.make = make self.model = model self.year = year #添加屬性odometer_reading,並設置默認值為0 self.odometer_reading = 0 def get_odometer(self): print("This car has " + str(self.odometer_reading) + " miles on it.") def set_odometer(self,mileage): self.odometer_reading = mileage def get_descriptive_name(self): """返回整潔的描述性信息""" long_name = str(self.year) + ‘ ‘ + self.make + ‘ ‘ + self.model return long_name.title() my_new_car = Car(‘Audi‘, ‘A4L‘, 2016) print(my_new_car.get_descriptive_name()) my_new_car.get_odometer() #2.給屬性指定默認值 #3.修改屬性的值 #直接修改 my_new_car.odometer_reading = 23 my_new_car.get_odometer() #通過方法修改 #def set_odometer(self,mileage) my_new_car.set_odometer(35) my_new_car.get_odometer() #9.3繼承 #創建子類的時候,父類必須包含在當前文件中,且位於子類的前面。 #定義子類的時候,必須在括號內指定父類的名稱。 #方法__init__()接受創建Car實例所需的信息 #super()幫助Python將父類和子類關聯起來。 class Battery(): def __init__(self, battery_size=70): self.battery_size = battery_size def describe_battery(self): print("This car has a "+ str(self.battery_size) + "-KWh battery.") #1.子類的方法__init__() class ElectricCar(Car): def __init__(self, make, model, year): super().__init__(make, model, year) self.battery_size = 70 self.battery = Battery() def describe_battery(self): print("This car has a " + str(self.battery_size) + "-KWh battery.") def fill_gas_tank(self): print("This car doesn‘t need a gas tank!") my_tesla = ElectricCar(‘teala‘, ‘model s‘, 2016) print(my_tesla.get_descriptive_name()) #2.給子類定義屬性和方法 my_tesla.describe_battery() #3.重寫父類的方法:取其精華,去其糟粕 #def fill_gas_tank(self): my_tesla.fill_gas_tank() #4.將實例用作屬性 #class Battery(): my_tesla.battery.describe_battery() #9.4導入類 #1.導入單個類 #打開模塊dog(這裏我為了方便在dog.py中寫的內容),並導入其中的Car類 from dog import Car my_new_car = Car(‘audi‘,‘a4‘,2016) print(my_new_car.get_descriptive_name()) #在一個模塊中存儲多個類:直接在模塊中編寫多個類 #從一個模塊中導入多個類 from dog import Car, Battery #導入整個模塊 import dog #導入模塊中的所有類 #from module_name import * #在一個模塊中導入另一個模塊 #9.5Python標準庫 #9.6類編碼風格 #類名:駝峰命名法(大駝峰),不適用下劃線 #實例名和模塊名:小駝峰,單詞之間加下劃線 #每個模塊都應包含一個文檔字符串 #空行的使用:在類中使用一個空行來分割方法;在模塊中,使用兩個空行來分割類 #導入標準庫中的模塊和自己編寫的模塊,先導入標準庫,空行,導入自己的模塊
Python編程從入門到實踐筆記——類