Python 学习笔记12 类 - 使用类和实例
生活随笔
收集整理的這篇文章主要介紹了
Python 学习笔记12 类 - 使用类和实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當我們熟悉和掌握了怎么樣創建類和實例以后,我們編程中的大多數工作都講關注在類的簡歷和實例對象使用,修改和維護上。
結合實例我們來進一步的學習類和實例的使用:
我們新建一個汽車的類:
#-*- coding:utf-8 -*-class Car():def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yeardef get_description_name(self):long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()my_car = Car("audi", "A4", 2016) print(my_car.get_description_name())''' 輸出: 2016 Audi A4 '''?
通過上面的例子我們可以看到,我們創建了一個car的類,這個類有三個參數,并且有一個打印所有信息的一個方法。
我們知道其實每個屬性都有初始的值,有些時候我們的屬性并不是為空或者0,他需要一個默認的其他值。我們可以在類的__init__方法中,對一些屬性進行初始化。一旦屬性具有初始值后,在實例化對象時,可以不提供數值。
我們在類中添加一個里程表的屬性,他的初始值應該為0,我們添加一個方法用來讀取這個屬性。
#-*- coding:utf-8 -*-class Car():def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yearself.odometer_reading = 0def get_description_name(self):long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()def read_odometer(self):print("This car has " + str(self.odometer_reading) + " miles on it.")my_car = Car("audi", "A4", 2016) print(my_car.get_description_name()) my_car.read_odometer()''' 輸出: 2016 Audi A4 This car has 0 miles on it. '''?
我們可以直接修改實例的屬性,來實現我么預想的操作:
#-*- coding:utf-8 -*-class Car():def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yearself.odometer_reading = 0def get_description_name(self):long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()def read_odometer(self):print("This car has " + str(self.odometer_reading) + " miles on it.")my_car = Car("audi", "A4", 2016) print(my_car.get_description_name()) my_car.read_odometer() my_car.odometer_reading = 100 my_car.read_odometer() ''' 輸出: 2016 Audi A4 This car has 0 miles on it. This car has 100 miles on it. '''?
也可以通過添加特定方法來實現對實例屬性的修改:
#-*- coding:utf-8 -*-class Car():def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yearself.odometer_reading = 0def get_description_name(self):long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()def read_odometer(self):print("This car has " + str(self.odometer_reading) + " miles on it.")def update_odometer(self, mileage):self.odometer_reading = mileagemy_car = Car("audi", "A4", 2016) print(my_car.get_description_name()) my_car.read_odometer() my_car.update_odometer(200) my_car.read_odometer() ''' 輸出: 2016 Audi A4 This car has 0 miles on it. This car has 200 miles on it. '''?
我么知道里程數一般都是遞增的,正常情況下我們是無法將其往回調整的,所以我們需要對update函數進一步的優化。輸入的參數必須大于等于當前值,小于則必須報錯:
#-*- coding:utf-8 -*-class Car():def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yearself.odometer_reading = 0def get_description_name(self):long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()def read_odometer(self):print("This car has " + str(self.odometer_reading) + " miles on it.")def update_odometer(self, mileage):if mileage >= self.odometer_reading:self.odometer_reading = mileageelse:print("You cannot do that.")my_car = Car("audi", "A4", 2016) print(my_car.get_description_name()) my_car.read_odometer()my_car.update_odometer(200) my_car.read_odometer()my_car.update_odometer(100) my_car.read_odometer() ''' 輸出: 2016 Audi A4 This car has 0 miles on it. This car has 200 miles on it. You cannot do that. This car has 200 miles on it. '''?
?
根據現實中的情況,其實我們定義一個增量方法更為合適,該方法每次都加上參數給定的值,并且該值應該大于等于0:
#-*- coding:utf-8 -*-class Car():def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yearself.odometer_reading = 0def get_description_name(self):long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()def read_odometer(self):print("This car has " + str(self.odometer_reading) + " miles on it.")def update_odometer(self, mileage):if mileage >= self.odometer_reading:self.odometer_reading = mileageelse:print("You cannot do that.")def increase_odometer(self, miles):if miles >= 0:self.odometer_reading += mileselse:print("The value is invalid, please input the number which should more than zero.")my_car = Car("audi", "A4", 2016) print(my_car.get_description_name()) my_car.read_odometer()my_car.update_odometer(200) my_car.read_odometer()my_car.increase_odometer(100) my_car.read_odometer()my_car.increase_odometer(-1) my_car.read_odometer() ''' 輸出: 2016 Audi A4 This car has 0 miles on it. This car has 200 miles on it. This car has 300 miles on it. The value is invalid, please input the number which should more than zero. This car has 300 miles on it. '''?
轉載于:https://www.cnblogs.com/wanghao4023030/p/10890767.html
總結
以上是生活随笔為你收集整理的Python 学习笔记12 类 - 使用类和实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThreadLocal 详解
- 下一篇: websocket python爬虫_p