一篇文章搞定Python中的類
類
物件導向程式設計是最有效的軟體編寫方法之一。在物件導向程式設計中,你編寫表示現實世界中的事物和情景的類,並基於這些類來建立物件。編寫類時,你定義一大類物件都有的通用行為。基於類建立物件時,每個物件都自動具備這種通用行為,然後可根據需要賦予每個物件獨特的個性。
建立和使用類
建立Dog類
根據約定,在Python中,首字母大寫的名稱指的是類。 這個類定義中的括號是空的,因為我們要從空白建立這個類。類中的函式稱為方法。
程式碼如下:
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__方法
__init__()是一個特殊的方法,每當你根據Dog類建立新例項時,Python都會自動執行它。在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免Python預設方法與普通方法發生名稱衝突。它包含了三個形參:self、name和age,在這個方法的定義中,形 參self必不可少,還必須位於其他形參的前面。
根據類建立例項
可將類視為有關如何建立例項的說明。
程式碼示例:
my_dog = Dog('demo',18) print(my_dog.name.title()) print(my_dog.age)
訪問屬性
要訪問例項的屬性,可使用句點表示法。例如my_dog.name
呼叫方法
要呼叫方法,可指定例項的名稱和要呼叫的方法,並用句點分隔它們。
程式碼示例:
my_dog = Dog('demo', 6) my_dog.sit() my_dog.roll_over()
建立多個例項
my_dog = Dog('demo', 6) you_dog = Dog('demo_go', 6)
使用類和例項
類編寫好後,你的大部分時間都將花在使用根據類建立的例項上。你需要執行的一個重要任務是修改例項的屬性。你可以直接修改例項的屬性,也可以編寫方法以特定的方式進行修改。
Car類
class Car(): # Car類 def __init__(self,name,model,year): # 初始化 self.name = name self.model = model self.year = year def get_descript(self): # 返回描述資訊 long_name = str(self.year) + '---' + self.name + '---' + self.model return long_name.title() # 示例化 my_car = Car('audi','A4','2016') print(my_car.get_descript())
處理的結果是:
2016---Audi---A4
給屬性設定預設值
類中的每個屬性都必須有初始值,哪怕這個值是0或空字串。在有些情況下,如設定預設值時,在方法__init__()內指定這種初始值是可行的;如果你對某個屬性這樣做了,就無需包含為它提供初始值的形參。
在car類在__init__的方法新增屬性self.odometer_reading = 0,同時新增一個方法read_odometer():
def read_odometer(self): # 列印一條指出汽車裡程的訊息 print("汽車的里程有:" + str(self.odometer_reading))
呼叫該方法:
my_car = Car('audi','A4','2016') print(my_car.get_descript()) my_car.read_odometer()
修改屬性的值
可以以三種不同的方式修改屬性的值:直接透過例項進行修改;透過方法進行設定;透過方法進行遞增(增加特定的值)。
直接修改屬性的值
程式碼如下:
my_new_car.odometer_reading = 23 my_new_car.read_odometer()
有時候需要像這樣直接訪問屬性,但其他時候需要編寫對屬性進行更新的方法。
透過方法修改屬性的值
在Car類新增一個update_odometer()的方法,專門用來修改屬性的值。
程式碼如下:
def update_odometer(self,update_value): # 修改里程值 self.odometer_reading = update_value
在呼叫的時候就很簡單了:
my_new_car.update_odometer(66) my_new_car.read_odometer()
透過方法對屬性的值進行遞增
遞增的邏輯其實很簡單,只有將之前的記錄儲存並且和後面傳入的值進行相加操作即可。
程式碼如下:
def update_odometer(self,update_value): # 修改里程值 self.odometer_reading += update_value
呼叫方法:
my_new_car.update_odometer(6) my_new_car.read_odometer() my_new_car.update_odometer(1) my_new_car.read_odometer()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3549/viewspace-2837093/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一篇文章搞定Python多程式(全)Python
- 一篇文章搞定前端面試前端面試
- 一篇文章搞定 MySQL 索引優化MySql索引優化
- 一篇文章搞定javascript氣泡排序JavaScript排序
- 一篇搞定系列-pythonPython
- 一篇文章搞定 javascript 正規表示式JavaScript
- MySQL命令,一篇文章替你全部搞定MySql
- 一篇文章搞定密碼學基礎密碼學
- 一篇文章搞定面試中的二叉樹題目(java實現)面試二叉樹Java
- HashMap原始碼分析 —— 一篇文章搞定HashMap面試HashMap原始碼面試
- 一篇文章搞定SpringMVC引數繫結SpringMVC
- 一篇文章告訴你什麼是 Python 元類Python
- 一篇搞定面試中的跨域問題面試跨域
- 一篇文章弄懂 JavaScript 中的 importJavaScriptImport
- Python:一篇文章掌握Numpy的基本用法Python
- 一篇文章帶你搞定經典面試題之扔雞蛋問題面試題
- 一篇文章帶你搞定 SpringBoot 整合 Swagger2Spring BootSwagger
- 一篇文章讓你徹底搞清楚Python中self的含義Python
- 社群中的第一篇文章 phpwprd 模板使用PHP
- 一篇教程搞定Windows系統中的Docker應用安裝WindowsDocker
- Python 中的類(中)Python
- 一篇文章助你理解Python3中字串編碼問題Python字串編碼
- 一篇文章助你理解Python2中字串編碼問題Python字串編碼
- 一篇比較好的文章---JS中的prototype的含義JS
- 一篇文章搞定什麼是nodeJs它和NPM關係與應用NodeJSNPM
- 一篇文章搞懂熱修復類載入方案原理
- 一篇文章讓你徹底瞭解Java內部類Java
- 一篇文章帶你使用 Python 將 txt 文件內容儲存到 excel 表中PythonExcel
- 一篇文章引發的思考
- 理解python函式,這一篇文章就夠了Python函式
- 一篇文章教你如何用 Python 記錄日誌Python
- python類中的方法Python
- 一篇文章帶你搞定 SpringSecurity 配置多個HttpSecurity 和實現對於方法安全的控制SpringGseHTTP
- 第一篇文章
- 一篇部落格搞定Django基礎Django
- web專案部署,一篇就搞定!Web
- 一篇文章教會你使用Java8中的Lambda表示式Java
- 測試釋出一篇正常的文章